Javascript 如何将日期时间字符串拆分为两部分
我有一个datetime字符串返回为 “2018-02-22下午3:42:49” 我知道我可以使用split(“”)方法拆分它,但它会给我3个单独的片段 2018-02-22,下午3:42:49 但我也需要它 2018-02-22,下午3:42:49 我可能只会看最后两个,但那可能会很脏这里有一种方法:Javascript 如何将日期时间字符串拆分为两部分,javascript,Javascript,我有一个datetime字符串返回为 “2018-02-22下午3:42:49” 我知道我可以使用split(“”)方法拆分它,但它会给我3个单独的片段 2018-02-22,下午3:42:49 但我也需要它 2018-02-22,下午3:42:49 我可能只会看最后两个,但那可能会很脏这里有一种方法: //您的日期字符串 var dt=“2018-02-22 3:42:49下午”; //按索引切片日期 var d=dt切片(0,10); //按索引切片时间 var t=dt.切片(11,21
//您的日期字符串
var dt=“2018-02-22 3:42:49下午”;
//按索引切片日期
var d=dt切片(0,10);
//按索引切片时间
var t=dt.切片(11,21);
//通过检查dt字符串的长度来检查小时是否为两位数
如果(dt长度>21){
t=dt.切片(11,22)
}
//添加日期和时间,中间留有空格
var dplust=d+“”+t;
//例如,获取p id
var justDate=document.getElementById(“justDate”);
var justTime=document.getElementById(“justTime”);
var dplustDiv=document.getElementById(“dplust”);
//例如,设置p的内部html
justDate.innerHTML='这只是日期-'+d;
justTime.innerHTML='这只是时间-'+t;
dplustDiv.innerHTML='这是日期加时间-'+dplust;
控制台日志(d);
控制台日志(t)代码>
您可以与正则表达式一起使用,然后您只能得到两个片段
let dateString=“2018-02-22 3:42:49 PM”;
让dateParts=dateString.match(/^(\S+)\S(.*)/).slice(1);//切片(1)删除第一个匹配项,因为这是不需要的完整字符串
log('1:',dateParts[0]+','+dateParts[1]);
//或者因为它只有两个部分,你也可以使用join
console.log('2:',dateParts.join(',');
log('数组长度:'+dateParts.length,dateParts)代码>我希望这能对您有所帮助,因为考虑一下它,而不是做数组
也许您只需使用索引标识空间,然后从字符串中获取所需内容,如下所示:
var DT = "2018-02-22 3:42:49 PM";
var SplitDateTime = DT.indexOf(" ");
var eDate = DT.substring(0, SplitDateTime); // 2018-02-22
var eTime = DT.substring(SplitDateTime + 1); // 3:42:49 PM
祝你过得愉快 那是什么
函数转换日期(sDate)
{
让[yyyy,mm,dd,h,m,s,t]=sDate.match(/\d{1,4}| AM | PM/g)
返回[`{yyyy}-${mm}-${dd}`,`${h}:${m}:${s}${t}`]
}
控制台日志(传输日期('2018-02-22 3:42:49 PM'))
//return->[“2018-02-22”,“3:42:49 PM”]
查找第一个空格的索引,在前后取子字符串。或者,如果您可以保证日期为YYYY-MM-DD,后跟空格,则您知道空格的位置。或者将其解析为datetime对象并根据需要使用它。您只需使用s.substring(0,10)
和s.substring(11)
,其中s
包含日期时间字符串。这是因为日期部分的长度总是相同的。@kol,这正是我想要的did@jarmod,你有没有一个关于解析的例子,因为我刚刚尝试了Date.parse,但是没有work@jarmod新日期(“2018-02-22下午3:42:49”)
更容易,Date
构造函数隐式调用Date.parse
。还有一个警告:Date.parse一直依赖于实现,在某些边缘情况下,它可能在不同的浏览器中返回不同的值……如果小时是两位数呢?它可以破解这个密码!请参阅更新的代码片段它检查字符串长度,以防小时为两位数。