Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Date.prototype.toString()使用中欧标准时间代替CET_Javascript_Date - Fatal编程技术网

Javascript Date.prototype.toString()使用中欧标准时间代替CET

Javascript Date.prototype.toString()使用中欧标准时间代替CET,javascript,date,Javascript,Date,我在JavaScript中使用toString日期方法时有奇怪的行为 我的同事们: const event = new Date('August 19, 1975 23:15:30'); console.log(event.toString()); // expected output: Tue Aug 19 1975 23:15:30 GMT+0200 (CEST) 还有我: const event = new Date('August 19, 1975 23:15:30'); consol

我在JavaScript中使用toString日期方法时有奇怪的行为

我的同事们:

const event = new Date('August 19, 1975 23:15:30');
console.log(event.toString());
// expected output: Tue Aug 19 1975 23:15:30 GMT+0200 (CEST)
还有我:

const event = new Date('August 19, 1975 23:15:30');
console.log(event.toString());
// expected output: Tue Aug 19 1975 23:15:30 GMT+0200 (Central European Standard Time)

因此,我有标准的时钟时间和清晰的文字,我不想要它。

您可能需要尝试
toLocaleDateString
以获得一致的结果。例如,
event.toLocaleDateString('en-GB',{timeZoneName:'long',平日:'short',年:'numeric',月:'short',日:'numeric',小时:'numeric',分钟:'numeric',秒:'numeric'})

您似乎在使用不同的浏览器或浏览器版本。ES2018中的输出未完全指定。正如您在规范中看到的:

tzName是一个实现定义的字符串,它可以是空字符串,也可以是代码单元0x0020(空格)、代码单元0x0028(左括号)、依赖于实现的时区名称和代码单元0x0029(右括号)的字符串串联


当前版本的Firefox显示了
(CET)
、Chrome
(中欧标准时间)
、Safari
(CEST)
(CEST)

如果这两个系统都执行
console.log(navigator.language)
,您会看到什么?@Pointy我有en GB和fr,它们也不一定会产生一致的结果。Intl对象本质上定义了一个API,而没有确切地指定结果应该是什么。时区名称或缩写没有标准,所以在实现上可能会有差异。好的,这就是工作。但我的问题并不能正确反映我的情况。因此,我用Jest进行了一些失败的单元测试。知道吗?@mickaelw我不知道你在测试什么,但你不应该测试日期格式。而是测试实际值,例如unix时间戳(毫秒)。我同意,它是快照中的道具。你给我一个主意;)