如何将字符串转换为日期javascript?

时间:2009-12-27 20:50:36

标签: javascript

我有这个作为我的日期:1212009所以这应该像12/1/2009但我被困在id字段和id字段不能有名称中的破折号。

现在java脚本可以接受这个号码,并为我添加斜线或者我将如何进行此操作?

由于

5 个答案:

答案 0 :(得分:1)

没有前导零,就不可能进行可靠的转换。如果没有前导零,则无法知道1232009是2009年1月23日还是12/3/2009。此外,您的示例编号也可以解释为1/21/2009。

答案 1 :(得分:1)

您应该有月份和日期的两位数字,因为"1212009"不明确,可以解释为"1/21/2009""12/1/2009"

如果你添加前导零,你知道总会有8位数字,所以你可以这样做:

var str = "12012009"
var result = str.replace(/(\d{2})(\d{2})(\d{4})/, "$1/$2/$3");
// 12/01/2009

var result = str.match(/(\d{2})(\d{2})(\d{4})/).slice(1).join('/');
// 12/01/2009

答案 2 :(得分:0)

您需要做的就是将字符串传递给新的日期构造函数。

这是一个很好的javascript资源供您查看。

http://www.javascriptkit.com/jsref/date.shtml

答案 3 :(得分:0)

假设您添加前导零以消除歧义,您可以格式化日期,如下所示:

dateString = String(id).match(/(\d{2})(\d{2})(\d{4})/).slice(1).join('/')

答案 4 :(得分:-1)

也许这会帮助你摆脱长期的六七个数字(最重要的部分是第一部分):

var sDate = "1212009";
if(sDate.length == 7){
    sDate = sDate.substr(0,2) + "0" + sDate.substr(2);
}
else if(sDate.length == 6){
    sDate = "0" + sDate.substr(0,1) + "0" + sDate.substr(1);
}

// This part can be done with Regular Expressions, as shown in other comments
var month = parseInt(sDate.substring(0,2));
var day = parseInt(sDate.substring(2,4));
var year = parseInt(sDate.substring(4));

alert(day + "/" + month + "/" year);
// Will alert 12/1/2009

然而, 1232009永远是01/23/2009,而不是12/03/2009

112009更改为1/1/2009

10102009更改为10/10/2009