javascript - Javascript - 为什么 ISO8601 格式的时间在 console.log 中以 2 种不同的格式显示?
问题描述
我有 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}`);
编辑:设置正确的日期格式。
解决方案
我的猜测是它取决于每个运行时的console.log
. 模板文字(您的第二个示例)将在将整个内容传递给之前对模板进行插值console.log
,因此在记录时它已经是一个字符串(并且它将使用与 相同的值date.toString()
),而第一个变体传递一个字符串文字然后是一个对象,它不一定是字符串(由控制台决定如何显示它;想想你通常如何为数组、对象等提供更方便的显示选项)。
Chrome 似乎不在乎,并且显示两个变体相同,而 Firefox 将第一个显示为Date
实例。Node 的 CLI 的行为类似于 Firefox,并以不同的方式显示它们,但不显示类型是Date
.
推荐阅读
- linux - 找不到libudev开发包
- c# - 如何从 SQL Server 中的 C# 函数重新创建 MD5 哈希
- python - 期待正则表达式从数据框中剥离可预测的文本块
- spring - spring boot中提交时如何保持表单上的数据无效
- javascript - 使用 html 和 php 生成密码
- authentication - 为服务器到服务器通信生成 JWT 令牌的最佳方法是什么?
- vb.net - 如何使用 datetime 制作 if else 语法(仅限时间)
- docker - 在 Docker 容器中找不到入口文件
- sass - 使用 SASS 函数主题颜色级别在引导程序 4 中创建自定义渐变
- git - 如何重新启动或删除我的 travis 上的所有内容以重新开始