gpt4 book ai didi

来自 12 小时格式日期和时间字符串的 JavaScript 新日期

转载 作者:行者123 更新时间:2023-11-30 17:25:10 25 4
gpt4 key购买 nike

示例字符串:2014-12-31 11:59 pm

就目前而言,无论我提供什么时间,JavaScript 甚至都不会解析时间,因为生成的时间代码会返回 12:00 am。

new Date("2014-12-31 11:59 pm") 之后的输出结果为:2014-12-31 12:00 am

编辑:

即使在期望格式并手动解析字符串之后,new Date() 构造函数也没有表现...

var sourceTime = "2014-12-31 11:59 pm";

var dateRaw = sourceTime.split(' ');
var dateYMD = dateRaw[0].split('-');
var dateTime = dateRaw[1].split(':');
var dateAmPm = dateRaw[2].toLowerCase();

// Adjust human month to system month...
dateYMD[1] = (parseInt(dateYMD[1]) - 1).toString();

// Convert 12h to 24h...
if(dateAmPm == 'pm') {
if(parseInt(dateTime[0]) < 12) dateTime[0] = (parseInt(dateTime[0])+12).toString();
} else {
if(parseInt(dateTime[0]) == 12) dateTime[0] = 0;
}

console.log(dateYMD);
console.log(dateTime);

var dateParsed = new Date(dateYMD[0], dateYMD[1], dateYMD[2], dateTime[0], dateTime[1]);

控制台日志显示正确的值被传递到 new Date() 但我仍然得到不正确的输出:(

最佳答案

我总是使用 Moment.js 而不是使用来自 JavaScript 的标准 Date使用日期时。这使得使用不同格式的日期和自定义所有内容变得非常容易。

在您的情况下,您可以执行以下操作:

var datestr = "2014-12-31 11:59 pm";
var date = moment(datestr,"YYYY-MM-DD HH:mm a")
$("#log").text(date.format("HH:mm:SS MMM DD YYYY"));

这是一个 jsfiddle尝试一下。

关于来自 12 小时格式日期和时间字符串的 JavaScript 新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415165/

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