我有ISO8601格式的日期,例如"2021-01-01T00:00:00.000Z"。我尝试console.log它作为字符串的一部分和变量-我得到两个不同的结果:
2021-01-01T00:00:00.000Z-当我将其显示为变量时
2021年1月1日星期五01:00:00 GMT+0100(中欧标准时间(-当我将其作为字符串的一部分显示时
如何以ISO8601格式"2021-01-01T00:00:00.000Z"作为字符串的一部分显示日期?
let date = new Date(2021, 0, (1 + (1 - 1) * 7), 1);
console.log('Show as variable: ', date);
console.log(`Show as part of string: ${date}`);
edited:设置正确的日期格式。
我的猜测是,它取决于每个运行时的console.log
实现。模板文本(第二个示例(将在将整个内容传递给console.log
之前对模板进行插值,因此在日志记录时它将已经是一个字符串(并且它将使用与date.toString()
相同的值(,而第一个变体传递一个字符串文本,然后传递一个对象,它也不一定是字符串(由控制台决定如何显示它;想想通常如何为数组、对象等提供更方便的显示选项(。
Chrome似乎并不在意,显示的两种变体都是一样的,而Firefox显示的第一种变体是Date
实例。Node的CLI有点像Firefox,并以不同的方式显示它们,但没有显示类型为Date
。