这是我的日期,对我来说没有什么不同。然而,时刻无法处理所有这些:
console.info(details.date);
console.info(moment(details.date).format());
console.info('________________________________________');
result.date = moment(details.date, "DD-MM-YYYY H:m").format();
//Console
________________________________________
16/10/10 15:00
Invalid date
________________________________________
09/10/10 15:00
2010-09-10T15:00:00+01:00
如何安全保存日期。
答案 0 :(得分:1)
看来Moment正在使用American Date约定,尽管它没有在moment(string)
interface中记录。
一个简单的例子是here
答案 1 :(得分:1)
根据moment(string)的文档,如果在解析字符串时未提供格式,它将首先尝试匹配ECMA-262中指定的ISO 8601格式之一。如果不这样做,它只会将字符串传递给new Date(string)
,这与使用 Date.parse 相同。
因此结果完全取决于实现。但是,大多数浏览器会将nn / nn / nn视为具有两位数年份的美式日期,即mm / dd / yy。但这并不能保证,可能会在浏览器之间发生变化。
解决方法是在解析字符串时始终传递格式。
在第二个示例中,指定的格式与提供的字符串不匹配。在这种情况下,它似乎又回落到 Date.parse 。
答案 2 :(得分:0)
您的日期格式字符串使用hyphons(“ - ”)而实际日期使用斜杠(“/”),因此Moment.Js无法解析它。在以下示例中正常工作
$("body").text(moment("16/10/10 15:00", "DD/MM/YY H:m").format())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.js"></script>