我将日期作为字符串,格式如下(例如):
someArray.forEach(data => data.color = 'red');
这是UTC时间。
当我从此字符串创建Date时,它将其视为本地时间:
"11/10/2015 10:00:00"
它打印:
let time = "11/10/2015 10:00:00";
let date = new Date(time);
console.log(date);
(而不是将其视为UTC:“ 2015年11月10日星期二10:00:00”)
我也尝试过使用moment.js。
有没有一种好的方法可以使Date()将字符串视为UTC,而不必在字符串末尾添加“ Z” /“ UTC” /“ + 000”?
答案 0 :(得分:2)
您可以使用内置的Date.UTC()
函数来执行此操作。这是一个小功能,它将采用您在原始帖子中给出的格式,并将其转换为UTC日期字符串
let time = "11/10/2015 10:00:00";
function getUTCDate(dateString) {
// dateString format will be "MM/DD/YYYY HH:mm:ss"
var [date, time] = dateString.split(" ");
var [month, day, year] = date.split("/");
var [hours, minutes, seconds] = time.split(":");
// month is 0 indexed in Date operations, subtract 1 when converting string to Date object
return new Date(Date.UTC(year, month - 1, day, hours, minutes, seconds)).toUTCString();
}
console.log(getUTCDate(time));
答案 1 :(得分:1)
日期构造器以MM / DD / YYYY格式解析您的日期,并应用本地时区偏移量(因此输出表示所讨论的一天开始时的本地午夜)。如果您的日期确实是MM / DD / YYYY,那么您要做的就是减去时区偏移量,您将获得UTC日期...
{
"id": 1,
"title": "Title one",
"category_data": {
"2": "Team",
"7": "Queries"
}
},
Here's everything I know关于在序列化和反序列化日期时管理时区。所有时区处理都是静态的! JS日期没有内部时区。
答案 2 :(得分:0)
您可以为此使用Date.UTC,但是您将不得不解析您的字符串,并将其每一部分都作为args自己放置,因为它无法解析此类字符串。您也可以使用moment.js来解析它:Convert date to another timezone in JavaScript
此外,似乎gulp.task("uploadcss", function() {
gulp.src('public/css/*.css')
.pipe(s3({
Bucket: 'mybucket-assets', // Required
ACL: 'public-read' // Needs to be user-defined
}, {
// S3 Constructor Options, ie:
maxRetries: 5
}))
;
});
会将日期解析为格林尼治标准时间,并且只有在将日期转换为PC当地时间之后