Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将日期时间字符串拆分为两部分_Javascript - Fatal编程技术网

Javascript 如何将日期时间字符串拆分为两部分

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

我有一个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);
//通过检查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一直依赖于实现,在某些边缘情况下,它可能在不同的浏览器中返回不同的值……如果小时是两位数呢?它可以破解这个密码!请参阅更新的代码片段它检查字符串长度,以防小时为两位数。