继我之前的帖子:Javascript Safari: new Date() with strings returns invalid date when typed
我正在使用 Moment.js 根据文本框中的用户输入将日期字符串转换为日期字段。
这是为了防止我在 Safari 和 Firefox 的链接帖子中描述的问题无法在 Chrome 正常时呈现日期。
这是代码片段:
var tempDate = moment(userInputFieldDate).format('DD-MM-YYYY');
alert(tempDate);
在 Chrome 中,它确实工作正常(它也用于处理 Javascript Date 对象)但给了我 moment.js 弃用警告
Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info. Arguments: [object Object] Error
在 Firefox 和 Safari 上只是在警告窗口中给出一个 UNDEFINED DATE
。所以不完全确定我应该怎么做才能将日期字符串转换为 Date 对象。
关于这个问题有什么建议吗?
最佳答案
如果你正在获取一个基于 JS 的日期 String
然后首先使用 new Date(String)
构造函数然后将 Date
对象传递给moment
方法。喜欢:
var dateString = 'Thu Jul 15 2016 19:31:44 GMT+0200 (CEST)';
var dateObj = new Date(dateString);
var momentObj = moment(dateObj);
var momentString = momentObj.format('YYYY-MM-DD'); // 2016-07-15
如果 dateString
是 15-07-2016
,那么您应该使用 moment(date:String, format:String)
方法
var dateString = '07-15-2016';
var momentObj = moment(dateString, 'MM-DD-YYYY');
var momentString = momentObj.format('YYYY-MM-DD'); // 2016-07-15
关于javascript - Moment.js - 如何将日期字符串转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38251763/