[英]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
假设您添加前导零以消除歧义,则可以这样设置日期格式:
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.