我需要将04/06/13(例如)转换为长日期 - Tue Jun 04 2013 00:00:00 GMT+0100 (BST)。如何使用 Javascript 做到这一点?我知道如何将长日期转换为短日期 - 而不是相反。
问问题
7024 次
4 回答
4
您可以尝试构造函数的解析功能,然后您可以将其结果字符串化:Date
> new Date("04/06/13").toString()
"Sun Apr 06 1913 00:00:00 GMT+0200" // or something
但是解析是依赖于实现的,不会有很多引擎能DD/MM/YY
正确解释你的奇怪格式。如果您使用过MM/DD/YYYY
,它可能会在任何地方被识别。
相反,您想确保它是如何解析的,所以必须自己做,并将单个部分输入构造函数:
var parts = "04/06/13".split("/"),
date = new Date(+parts[2]+2000, parts[1]-1, +parts[0]);
console.log(date.toString()); // Tue Jun 04 2013 00:00:00 GMT+0200
于 2013-05-18T17:46:20.197 回答
2
split 方法的替代方法是使用 lastIndexof 和 slice 来将年份更改为 ISO8601 格式,然后给出一个已知可跨浏览器工作的非标准字符串,然后使用日期解析方法。(假设有问题的固定模式)
然而,
如果你想确保它是如何解析的,你必须自己做,并将单个部分输入构造函数:
,这意味着使用 split 方法,请参阅@Bergi 答案。
var string = "04/06/13",
index = string.lastIndexOf("/") + 1,
date = new Date(string.slice(0, index) + (2000 + parseInt(string.slice(index), 10)));
console.log(date);
输出
Sat Apr 06 2013 00:00:00 GMT+0200 (CEST)
或者另一种选择是使用moments.js
var string = "04/06/13";
console.log(moment(string, "DD/MM/YY").toString());
输出
Sat Apr 06 2013 00:00:00 GMT+0200 (CEST)
于 2013-05-18T18:43:58.707 回答
0
您必须将 13 作为 2013 否则将采用默认 1913
alert(new Date('04/06/2013'));
于 2013-05-18T17:47:57.460 回答