为什么少数日期格式无法在javascript中使用

时间:2019-06-25 06:16:23

标签: javascript

当我应用以下代码时 javascript中的new Date(“ 25-06-2019”),它始终给出无效的日期。但是相同的格式也可以在PHP中使用。

这可能是什么原因? javascript的格式无效?

2 个答案:

答案 0 :(得分:2)

您需要使用ISO 8601日期或RFC 2822日期。请参阅(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)。

如果您要执行更复杂的操作,我建议您使用Moment.js,它将为您执行很多日期解析/格式化/操作。

例如:

let iso8601Date = '2019-06-25';
console.log(new Date(iso8601Date));

let rfc2822Date = 'Tue, 25 Jun 2019 +0000'
console.log(new Date(rfc2822Date ));

// Or you can use moment.js which is great for date parsing, formatting, etc.
console.log(new moment.utc("25-06-2019", "DD-MM-YYYY"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

答案 1 :(得分:1)

new Date("25-06-2019")给您无效的日期,因为您传递的是无效的日期字符串。

有四种创建新日期对象的方法:

new Date()
new Date(year, month, day, hours, minutes, seconds, milliseconds)
new Date(milliseconds)
new Date(date string)

因此,您的案件是第4个案件,因此有效的日期字符串应类似于October 13, 2014 11:13:00 如果您通过日期字符串上方说

console.log(new Date("October 13, 2014 11:13:00"));

它将正常工作。

此外,您可以提供有效的ISO 8601字符串。

console.log(new Date("2008-09-15"));

对于ISO 8601字符串格式,您可以参考http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm