Moment.js - 如何将日期字符串转换为日期?

新手上路,请多包涵

跟进我之前的帖子: Javascript Safari:带有字符串的 new Date() 在键入时返回无效日期

我正在使用 Moment.js 根据文本框中的用户输入将日期字符串转换为日期字段。

这是为了防止我在 Safari 和 Firefox 的链接帖子中描述的问题无法在 Chrome 正常时呈现日期。

这是代码片段:

 var tempDate = moment(userInputFieldDate).format('DD-MM-YYYY');
alert(tempDate);

在 Chrome 中,它确实工作正常(它也用于 Javascript Date 对象)但给了我 moment.js 弃用警告

弃用警告:时刻构造回退到 js 日期。这是不鼓励的,将在即将发布的主要版本中删除。请参阅 https://github.com/moment/moment/issues/1407 了解更多信息。参数:[object Object] 错误

在 Firefox 和 Safari 上只是在警报窗口中给出 UNDEFINED DATE 。所以不完全确定我应该怎么做才能将日期字符串转换为 Date 对象。

关于这个问题有什么建议吗?

原文由 noobcoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

If you are getting a JS based date String then first use the new Date(String) constructor and then pass the Date object to the moment method.喜欢:

 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

如果 dateString15-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

原文由 Matyas 发布,翻译遵循 CC BY-SA 3.0 许可协议

甜蜜而简单!

moment('2020-12-04T09:52:03.915Z').format('lll');

2020 年 12 月 4 日下午 4:58

其他格式

moment.locale();         // en
moment().format('LT');   // 4:59 PM
moment().format('LTS');  // 4:59:47 PM
moment().format('L');    // 12/08/2020
moment().format('l');    // 12/8/2020
moment().format('LL');   // December 8, 2020
moment().format('ll');   // Dec 8, 2020
moment().format('LLL');  // December 8, 2020 4:59 PM
moment().format('lll');  // Dec 8, 2020 4:59 PM
moment().format('LLLL'); // Tuesday, December 8, 2020 4:59 PM
moment().format('llll'); // Tue, Dec 8, 2020 4:59 PM

原文由 Akshay Vijay Jain 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏