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

标签 javascript date momentjs

继我之前的帖子: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

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

关于javascript - Moment.js - 如何将日期字符串转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38251763/

相关文章:

javascript - HandsOnTable 具有大量行的下拉列表

javascript - "Completely"只读单选按钮

javascript - JavaScript 中的 getYear() 返回 118

python - 在没有使用构造函数的子类或辅助函数的情况下更改 datetime.date 的日期或月份

javascript - Moment JavaScript - 获取两个日期之间的差异

date - 如何在moment js中格式化日历

momentjs - 使用 google 闭包和高级优化编译 moment.js

javascript - 目标小于容器时的D3 zoom translateExtent计算

javascript - 选中一个复选框后取消选中其他复选框

javascript - 如何使用 js(或 moment.js)检查日期是否超过当前日期?