首页 > 解决方案 > 某些 UTC 字符串 Javascript 的日期无效

问题描述

尝试在任何给定机器上获取任何给定时间戳的 UTC 日期(使用他们自己的本地时间),我使用了:

 var date = new Date(timestamp).toLocaleString('en-GB', { timeZone: 'UTC' });

一旦我尝试将日期字符串转换为 UTC 日期,我会在某些日期得到Invalid Date ......这一切看起来都很奇怪。

$ node
> date = new Date('15/08/2019, 00:00:00');
Invalid Date
> date = new Date('12/08/2019, 00:00:00');
2019-12-08T00:00:00.000Z
> date = new Date('15/08/2019'); 

知道无效日期问题可能来自哪里吗?

标签: javascriptdateutc

解决方案


通过使用“en-GB”语言环境将时间戳转换为字符串,看起来您正在以 DD/MM/YYYY 格式获取它们。但是在您的第二个示例中,无论您的默认语言环境是什么,字符串都被解释为“MM/DD/YYYY”,因此第一次调用失败,因为 15 不是有效的月份数。


推荐阅读