类似的问题已经问了很多次了,但我找不到更具体的解决方案。我正在做的事情是:
<input type="date">,当单击它时,会打开一个日期为dd/mm/yyyy格式的日历。Date.parse(html5Date)发送到我的数据库,在服务器中,我修改日期并将其发送回我的角应用程序。new Date(timestamp).To将时间戳转换为Date对象,在我所做的[date.getDate(), date.getMonth() + 1, date.getFullYear()].join('/')表中以人性化格式打印日期。注意:角抛出许多令人讨厌的控制台错误,指出日期格式是错误的(为html日期类型),但并不阻止代码运行。
发布于 2017-03-21 20:06:55
听起来你在做很多转变。我认为应该只有一种方式来表示日期:作为编程语言中的Date对象。只有少数几个转变需要实现:
Date <=> Integer milliseconds since the epoch to pass to server
Date <=> String human-readable format to display to user除此之外,任何事情都是自找麻烦。可以通过转换到int date.getTime()、比较和转换回Date来进行比较。加法也是一样。请注意,Date.parse的实现取决于它将接受什么,尽管它们都将接受ISO8601格式的日期字符串这意味着您必须手动处理字符串转换,如下所示:
var toDate = str => {
var splitter = str.indexOf("/") === -1 ? "-" : "/";
var [mon, day, year] = str.split(splitter);
return new Date(year, mon - 1, day);
};
var toDateString = date => {
return "" + date.getFullYear() + (date.getMonth() + 1) +...
};请注意,没有验证,这是留给读者的练习。
关于MOMENT.JS的一个词
moment.js太棒了。它也很大,它是一个厨房-洗涤API与重量相匹配。您已经在加载角,所以在使用另一个大型库扩展负载大小之前要仔细考虑。
发布于 2017-03-21 19:45:17
Moment.js是一个功能强大的数据格式和操作库。在Moment.js中,您可以做的很多事情都是一行代码,这使得生活变得更加简单。我同意,如果不使用像这样的库,格式化和处理可能会很痛苦。
编辑: fyi,我使用这个与我的角度应用程序,并发现它非常有用!
https://stackoverflow.com/questions/42936617
复制相似问题