Javascript在字符串中连接日期时会更改日期格式

Javascript在字符串中连接日期时会更改日期格式,javascript,date,Javascript,Date,const date=新日期(); date.setDate(date.getDate()-30); console.log(日期);//2018-03-03T23:10:24.063Z console.log(日期+hello');//2018年3月3日星期六15:10:59 GMT-0800(太平洋标准时间)您好 2018-03-03T23:10:24.063Z 这是,因此date.toISOString()+“hello”toJSON()是您的朋友(通常是): const date=新日

const date=新日期();
date.setDate(date.getDate()-30);
console.log(日期);//2018-03-03T23:10:24.063Z
console.log(日期+hello');//2018年3月3日星期六15:10:59 GMT-0800(太平洋标准时间)您好
2018-03-03T23:10:24.063Z

这是,因此
date.toISOString()+“hello”
toJSON()
是您的朋友(通常是):

const date=新日期();
date.setDate(date.getDate()-30);
控制台日志(日期);
log(date.toString());

log(`${date.toJSON()}hello`)谢谢,您知道Javascript在串接字符串时更改格式的逻辑吗?我真的不喜欢它:|@Antoine-它没有改变任何格式。只是
Date
对象上的
console.log
没有任何规范定义,因此在不同的实现中有所不同。(在第一个log语句中,您记录的是
日期
。在第二个语句中,您记录的是
字符串
),您想知道在
toString
toISOString
之间进行选择的位置。切换到控制台.log()
perhaps@Tibrogargan我不确定我是否理解您的问题,但如何记录内容取决于实现。没有什么要求调用
toString
。@Tibrogargan检查下面的答案,内部调用了toString(),不幸的是,没有任何东西将
console.log
的输出与
toJSON
的输出对齐,或者说
console.log
应该调用
.toString()
.toISOString())
日期
对象上。我在这里要求这样做:好吧,只要这只是控制台输出的一个问题,这不是一个太大的问题——除了经常产生如此多的问题。尽管如此,这一点还是很好!是的。会引起头痛,但希望不会更多如果需要ISO格式,那么toISOString似乎是一个更具语义的选项。因此console.log()调用
.toISOString()
,当调用包含日期的字符串时,是否正确?控制台根据您打印日期的方式对日期进行不同的字符串化。你可以随意使用日期,参见