【问题标题】:Why there is a difference in node js Date() object values in console.log()?为什么console.log()中的节点js Date()对象值存在差异?
【发布时间】:2018-02-01 07:03:46
【问题描述】:
我是 node 新手,我正在查看 Node.js 中的 Date() 对象、值和日期格式。当我运行下面的代码时,我在控制台中得到不同的输出。
const date_1 = new Date();
console.log(date_1);
const date_2 = new Date();
console.log(+date_2);
const date_3 = new Date();
console.log('comma:',date_3);
const date_4 = new Date();
console.log('plus:'+date_4);
在控制台中给出以下输出?
2018-02-01T06:55:41.327Z
1517468141327
comma: 2018-02-01T06:55:41.327Z
plus:Thu Feb 01 2018 12:25:41 GMT+0530 (India Standard Time)
谁能让我知道我在理解方面缺少什么。
【问题讨论】:
标签:
node.js
date
console.log
【解决方案1】:
第一种和第三种情况默认显示
new Date().toJSON()
对于第二种情况 +new Date() 一元运算符,相当于:
function(){ return Number(new Date); }
对于第四种情况'plus:'+date_4,字符串被连接起来,结果日期等价于
'plus:'+date_4.toString()
【解决方案2】:
new Date() 的值是通用格式(Z),所以当你记录一个日期时,它的值就会被记录。
console.log(date);
console.log('abc',date);
但是当使用 + 运算符时,它会将其转换为数字格式(在日期的情况下为毫秒)-
console.log(+date);
console.log(1+'a'); // NaN
当您将 + 与字符串一起使用时,它会获取 toString() 日期值,即 Thu Feb 01 2018 12:45:21 GMT+0530 (IST)
console.log(date.toString()); // Thu Feb 01 2018 12:45:21 GMT+0530 (IST)
【解决方案3】:
您正在隐式地将您的日期转换为其他内容:
const date_1 = new Date();
console.log(date_1); //prints date as a Date object
const date_2 = new Date();
console.log(+date_2); //converts date to a number
const date_3 = new Date();
console.log('comma:',date_3); //prints date as a Date object
const date_4 = new Date();
console.log('plus:'+date_4); //converts date to a String