我有这个作为我的日期:1212009所以这应该像12/1/2009但我被困在id字段和id字段不能有名称中的破折号。
现在java脚本可以接受这个号码,并为我添加斜线或者我将如何进行此操作?
由于
答案 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)
答案 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