我需要Date从格式为的UTC日期字符串生成javascript YYYY-MM-DD。这是一个例子:
var date = new Date('2018-01-31');
Run Code Online (Sandbox Code Playgroud)
创建的日期是:
Tue Jan 30 2018 19:00:00 GMT-0500(东部标准时间)
给定时区偏移量,日期为昨天。
我该如何创建一个JavaScript日期,并假定该永恒输入为UTC?
您可以使用 Date.UTC 。这是来自https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC
的示例
var utcDate1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
var utcDate2 = new Date(Date.UTC(0, 0, 0, 0, 0, 0));
console.log(utcDate1.toUTCString());
// expected output: Fri, 02 Feb 1996 03:04:05 GMT
console.log(utcDate2.toUTCString());
// expected output: Sun, 31 Dec 1899 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud)
所以你得到这个作为解决方案:
var test = "2018-01-31";
var year = test.substr(0,4);
var month = test.substr(5,2) -1;
var day = test.substr(8,2);
var utcDate1 = new Date(Date.UTC(year,month,day));
alert(utcDate1.toUTCString());
// expected output:Wed, 31 Jan 2018 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud)