admin管理员组文章数量:1401459
I have a html span that display a date using moment.js in the page:
<span data-bind="text: moment(new Date(dueDate())).format('MM/DD/YYYY')"></span>
It's working fine apart if the dueDate()
property is an empty string, If it's an empty string I'm getting:
01/01/1900
How can avoid that?
This is the entire div:
<div class="col-md-8">
<ul>
<li>DATE <span data-bind="text: moment(new Date(sDate())).format('MM/DD/YYYY')"></span></li>
<li>Due date <span></span><span data-bind="text: moment(new Date(dueDate())).format('MM/DD/YYYY')"></span>
<p>Days Remaining: <span class="days-remaining" data-bind="text: daysRemaining"></span></p>
</li>
<li>Date 2 <span></span><span data-bind="text: moment(new Date(date2())).format('MM/DD/YYYY')"></span>
<p>Days Remaining: <span class="days-remaining" data-bind="text: daysRemaining"></span></p>
</li>
</ul>
</div>
I have a html span that display a date using moment.js in the page:
<span data-bind="text: moment(new Date(dueDate())).format('MM/DD/YYYY')"></span>
It's working fine apart if the dueDate()
property is an empty string, If it's an empty string I'm getting:
01/01/1900
How can avoid that?
This is the entire div:
<div class="col-md-8">
<ul>
<li>DATE <span data-bind="text: moment(new Date(sDate())).format('MM/DD/YYYY')"></span></li>
<li>Due date <span></span><span data-bind="text: moment(new Date(dueDate())).format('MM/DD/YYYY')"></span>
<p>Days Remaining: <span class="days-remaining" data-bind="text: daysRemaining"></span></p>
</li>
<li>Date 2 <span></span><span data-bind="text: moment(new Date(date2())).format('MM/DD/YYYY')"></span>
<p>Days Remaining: <span class="days-remaining" data-bind="text: daysRemaining"></span></p>
</li>
</ul>
</div>
Share
Improve this question
edited Dec 2, 2016 at 8:23
user3378165
asked Dec 2, 2016 at 8:13
user3378165user3378165
6,93618 gold badges66 silver badges108 bronze badges
4
- use a if condition, test if the string is empty – xShirase Commented Dec 2, 2016 at 8:17
-
I'm not sure how to add an
if
in this context. – user3378165 Commented Dec 2, 2016 at 8:18 - You can check the answer to this question stackoverflow./questions/10577078/… – Shekhar Chikara Commented Dec 2, 2016 at 8:19
-
data-bind="text: dueDate()? moment(dueDate(), format).format('MM/DD/YYYY')"
. Also, I'd suggest you to makedueDate
a string variable and process values in yourvm
instead ofview
– Rajesh Commented Dec 2, 2016 at 8:19
1 Answer
Reset to default 3You will have to add a check. If value exists, then parse value, else show blank.
this.getDateInFormat = function(str){
var d = moment(str, DEFAULT_FORMAT);
return str && d.isValid() ? d.format('MM/DD/YYYY') : '';
}
As mented before, you should move all parsing logic to your viewModel. This way your code is generic and your view is clean.
JSFiddle.
本文标签: javascriptHow to replace a default date with an empty stringStack Overflow
版权声明:本文标题:javascript - How to replace a default date with an empty string - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744304949a2599764.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论