Ash*_*ena 5 javascript date iso8601 node.js
var dateInCST; //Getting CST date as input.
/*Triming the time part and retaining only the date.*/
var onlyDateInCST = new Date(dateInCST.getUTCFullYear(), dateInCST.getUTCMonth(), dateInCST.getUTCDate());
console.log(onlyDateInCST);
Run Code Online (Sandbox Code Playgroud)
我在 +5:30 即 IST 时区。
在通过提供年月日创建日期的过程中,节点 js 将其视为 IST 并自动扣除 -5:30。
Node js 通过将日期视为服务器时区来自动将日期转换为 UTC。但是在浏览器中,我没有时间就获得了正确的 CST 日期。
例子 :
var today = new Date(2017, 2, 7);
console.log(today);
Run Code Online (Sandbox Code Playgroud)
日期应该是2017-03-07T00:00:00.000Z。但是节点js从这个日期扣除UTC之间的服务器时区差异,即+5:30,日期对象变成2017-03-06T18:30:00.000Z
为什么上面的代码在 Node js 和浏览器中的表现不同。有什么解决方法吗?
编辑 :
var date = new Date();
function createDateAsUTC(date) {
return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()));
}
console.log(date);
console.log(createDateAsUTC(date));
Run Code Online (Sandbox Code Playgroud)
NodeJs 输出:
2017-03-08T12:28:16.381Z
2017-03-08T17:58:16.000Z
浏览器输出:
2017 年 3 月 8 日星期三 17:58:17 GMT+0530(印度标准时间)
2017 年 3 月 8 日星期三 23:28:17 GMT+0530(印度标准时间)
Node js 行为和浏览器之间存在差异。服务器(本地)时间是 17:58。
new Date(?,?,?,?,?,?) 和 new Date(Date.UTC(?,?,?,?,?,?)) 有什么区别?
Nodejs 以ISO 8601格式表示
Z 是零 UTC 偏移的区域指示符。“09:30 UTC”因此表示为“09:30Z”或“0930Z”
在你的情况下
var 今天 = 新日期(2017, 2, 7);
2017-03-06T18:30:00.000Z 它是有效的,因为它以 UTC 表示。
可能是 nodejs 中的默认日期格式是yyyy-mm-ddThh:mm:ss.fffZ,如果将其更改为yyyy-mm-ddThh:mm:ss.fffZ+|-hh:mm它将显示为2017-03-07T00:00:00.000+05:30
更新
我运行的日期和时区与你的相同,在我的机器上它没有显示 ISO 8601 格式,它只显示了toISOString()方法
var today = new Date(2017, 2, 7);
console.log(today); --> Tue Mar 07 2017 00:00:00 GMT+0530 (India Standard Time)
console.log(today.toISOString()); --> 2017-03-06T18:30:00.000Z
Run Code Online (Sandbox Code Playgroud)
复制我添加 moment.js
var today = new Date(2017, 2, 7);
console.log(moment(today).format()); --------> 2017-03-07T00:00:00+05:30
console.log(moment(today).utc().format()); --> 2017-03-06T18:30:00Z
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21804 次 |
| 最近记录: |