我想格式化日期,但格式不正确。
例如:
2019年3月8日,格林尼治标准时间+0100 5:13 pm
如果具有以下格式,它将起作用:
2019年3月8日17:13:00 GMT + 0100
有什么方法可以快速格式化日期,以便可以通过默认的javascript Date函数进行解析?
我试图在pm / am之前找到子目录。但是我不知道如何获取其余的内容(下午5:13)以及如何“自动”格式化。我本来打算添加12,但是我不确定如何获取子字符串。
谢谢。
编辑:
就目前而言,我正在使用momentJs,但这也不起作用。
function returnFormatedDate(dt)
{
return moment(dt).format('DD.MM.YY HH:mm');
};
返回“无效日期”
Edit2: 示例代码,但我更喜欢Chris G.的代码:
var str = "Mar 8, 2019 5:13pm GMT+0100";
var parts = str.split(" ");
console.log(parts);
if(3 in parts)
{
badPart = parts[3];
if(badPart.includes("pm"))
{
var newBadPart = badPart.replace('pm', '');
var moddedDate = newBadPart.split(":");
moddedDate[0] = 12 + Number(moddedDate[0]);
badPart = moddedDate.join(":");
}
else if(badPart.includes("am"))
{
badPart.replace("am", "");
}
var newParts = [parts[0], parts[1], parts[2], badPart, parts[4]];
var dte = new Date(newParts.join(" "));
console.log(dte);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
答案 0 :(得分:0)
这是解决方案:
var timestamp = "Mar 8, 2019 5:13pm GMT+0100";
var cur_date = timestamp.replace(/T/, ' ').replace(/\..+/, '').substr(0, 19);
console.log(cur_date)
答案 1 :(得分:0)
这是我的解决方案:
var str = "Mar 8, 2019 5:13pm GMT+0100";
var parts = str.split(" ");
console.log(parts);
if(3 in parts)
{
badPart = parts[3];
if(badPart.includes("pm"))
{
var newBadPart = badPart.replace('pm', '');
var moddedDate = newBadPart.split(":");
moddedDate[0] = 12 + Number(moddedDate[0]);
badPart = moddedDate.join(":");
}
else if(badPart.includes("am"))
{
badPart.replace("am", "");
}
var newParts = [parts[0], parts[1], parts[2], badPart, parts[4]];
var dte = new Date(newParts.join(" "));
console.log(dte);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
这是Chris G's,我更喜欢: https://jsfiddle.net/khrismuc/2esxhyqb