如何在Javascript中将短日期转换为长日期?

时间:2013-05-18 17:40:44

标签: javascript date

我需要将 04/06/13 (例如)转换为漫长的日期 - 2013年6月4日星期二00:00:00 GMT + 0100(BST) 。我怎么能用Javascript做到这一点?我知道如何将长日期转换为短日期 - 而不是相反。

4 个答案:

答案 0 :(得分:3)

您可以尝试parsing functionalityDate constructor,然后您的结果可以stringify

> 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

答案 1 :(得分:2)

split方法的替代方法,使用lastIndexof和slice,将年份更改为ISO8601格式,然后提供已知跨浏览器工作的非标准字符串,然后使用date parsing method。 (假设一个固定的模式,如问题)

然而,

  

如果你想确保如何解析它,你必须自己做   将单个部分提供给构造函数:

,这意味着使用拆分方法see @Bergi answer

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) 

jsfiddle

或另一种选择是使用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) 

jsfiddle

答案 2 :(得分:1)

您可以使用:

new Date(2013, 06, 04)

...或直接使用日期字符串(即表示parse方法接受的日期的字符串):

new Date("2013/06/04");

...或指定日期的不同部分,例如:

new Date(year, month, day [, hour, minute, second, millisecond]);

看看this

答案 3 :(得分:0)

你必须以13为13,否则将采取默认1913

alert(new Date('04/06/2013'));