繁体   English   中英

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

[英]How to convert string to date javascript?

我的约会日期是:1212009,所以应该像2009年1月1日,但是我被困在id字段中,并且id字段中的名称不能包含破折号。

现在,java-script可以使用这个数字并为我重新添加斜线吗,或者我将如何去做呢?

谢谢

如果没有前导零,就不可能进行可靠的转换。 不可能知道1232009是1/23/2009还是12/3/2009而没有前导零。 同样,您的示例编号也可以解释为1/21/2009。

由于"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

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

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

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

假设您添加前导零以消除歧义,则可以这样设置日期格式:

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

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

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将始终为2009年1月23日,而不是2009年3月3日

112009更改为1/1/2009

10102009更改为10/10/2009

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM