为什么console.log()中的节点js Date()对象值存在差异?

时间:2018-02-01 07:03:47

标签: node.js date console.log

我是node的新手,我在Node中经历了Date()对象,值和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)

有人可以让我知道我在这里所缺少的理解。

3 个答案:

答案 0 :(得分:3)

第一种和第三种情况显示为默认

new Date().toJSON()

对于第二种情况+新的Date()一元运算符,它相当于:

function(){ return Number(new Date); }

对于第四种情况'plus:'+ date_4,字符串连接在一起,因为日期相当于

'plus:'+date_4.toString() 

答案 1 :(得分:2)

新Date()的值是通用格式(Z),因此当您记录日期时,会记录它的值。

console.log(date);
console.log('abc',date);

但是当使用带有多个+的+运算符时,它会将其转换为数字格式(日期为毫秒) -

console.log(+date);
console.log(1+'a'); // NaN

当你对字符串使用+时,它会获得日期的字符串索引,即2月01日2018 12:45:21 GMT + 0530(IST)

console.log(date.toString()); // Thu Feb 01 2018 12:45:21 GMT+0530 (IST)

答案 2 :(得分:2)

您隐含地将日期转换为其他内容:



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