gpt4 book ai didi

Javascript - 将日期字符串转换为美国日期格式

转载 作者:行者123 更新时间:2023-12-01 03:48:04 25 4
gpt4 key购买 nike

我有一个名为 regdate 的字符串,其值为 16-4-2017 00:00:00

现在我已经尝试了几个小时将此字符串转换为这种格式:4/16/2017 12:00:00 AM

我知道这个问题可能会重复,但我已经在互联网上查找了几个小时了。

最佳答案

方法一 - 用正则表达式解析,用toLocaleString格式化输出

在此代码片段中,string.match 方法用于解析日期字符串。然后使用日期部分创建日期对象,并使用 toLocaleString("en-US") 获取美国日期格式:

function convertDate(regdate) {
var m = regdate.match(/(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)/);
var date = new Date(m[3], m[2] - 1, m[1], m[4], m[5], m[6]);
return date.toLocaleString("en-US");
}
Date: <input id="txtDate" type="text" value="16-4-2017 00:00:00" />
<button onclick="console.log(convertDate(document.getElementById('txtDate').value))">Convert</button>

方法2 - 解析并用正则表达式替换

在第二个代码片段中,string.replace方法用于修改日期字符串:正则表达式解析原始日期字符串,替换函数重新组合各个部分:

function convertDate(regdate) {
return regdate.replace(/(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+)/,
function(m, v1, v2, v3, v4, v5, v6) {
var hour24 = parseInt(v4, 10);
var hour12 = hour24 % 12 || 12;
var ampm = hour24 < 12 ? "AM" : "PM";
return `${v2}/${v1}/${v3} ${hour12}:${v5}:${v6} ${ampm}`;
});
}
Date: <input id="txtDate" type="text" value="16-4-2017 00:00:00" />
<button onclick="console.log(convertDate(document.getElementById('txtDate').value))">Convert</button>

方法3 - 使用datejs库解析,使用toLocaleString格式化输出

如果您不介意使用外部库,可以使用 datejs 将字符串转换为日期。并使用 date.toLocaleString("en-US") 格式化输出:

var date = Date.parse("16-4-2017 00:00:00");
console.log(date.toLocaleString("en-US"));
.as-console-wrapper {
max-height: 100% !important;
top: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/datejs/1.0/date.min.js"></script>

关于Javascript - 将日期字符串转换为美国日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43439742/

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