gpt4 book ai didi

ReactJS 中的 JavaScript Date() : How to accept input as GMT/UTC and convert it into ISO string?

转载 作者:行者123 更新时间:2023-11-28 05:14:16 27 4
gpt4 key购买 nike

当前输入是“12 09 2016 00:00:00”并且应该假设它是作为GMT日期和时间输入的。相反,它接受它作为本地并转换它。当它转换为ISOString()时,它会将其转换为GMT,并添加时差。

如何获取 "12 09 2016 00:00:00" 格式的输入,将其视为 GMT/UTC,并执行 .toISOString() 来将其转换为 ISO 格式,"2016-12-09T00:00:00.000Z"

var dateAndTime = new Date("12 09 2016 00:00:00")
//Returns: "Fri Dec 09 2016 00:00:00 GMT-0800 (PST)"
//Want it to return: "Fri Dec 09 2016 00:00:00 (GMT)"

var gmtDateAndTime = dateAndTime.toISOString();
//Returns: "2016-12-09T08:00:00.000Z"
//Want it to return: "2016-12-09T00:00:00.000Z"

谢谢您,一定会投票并接受答案。

最佳答案

How can I take an input in "12 09 2016 00:00:00" format, take it as GMT/UTC, and do .toISOString() to turn it into the ISO format, "2016-12-09T00:00:00.000Z"?

看来您只是想重新格式化字符串,所以就这样做:

// Reformat string in MM DD YYYY HH:mm:ss format to 
// ISO 8601 UTC
function formatDateStringISO(s) {
var b = s.split(/\D/);
return b[2] + '-' + b[0] + '-' + b[1] +
'T' + b[3] + ':' + b[4] + ':' + b[5] + '.000Z';
}

console.log(formatDateStringISO('12 09 2016 00:00:00'))

如果要将字符串解析为日期然后输出 ISO 8601 格式字符串,请执行以下操作:

// Parse string in MM DD YYYY HH:mm:ss format
// If date string is invalid, returns an invalid Date
function parseDateAsUTC(s) {
var b = s.split(/\D/);
var d = new Date(Date.UTC(b[2], --b[0], b[1], b[3], b[4], b[5]));
// Validate date
return d && d.getMonth() == b[0]? d : new Date(NaN);
}

// Valid date Invalid date
['12 09 2016 00:00:00', '12 34 2016 00:00:00'].forEach(function(s) {
var d = parseDateAsUTC(s);
console.log(s + ' => ' + d[isNaN(d)? 'toString' : 'toISOString']());
});

关于ReactJS 中的 JavaScript Date() : How to accept input as GMT/UTC and convert it into ISO string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41112487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com