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



我有一个日期时间字符串作为返回

"2018-02-22下午3:42:49;

我知道我可以使用拆分("(方法进行拆分,但它给了我3个单独的

2018-02-22下午3:42:49

但我需要它2018-02-22,下午3:42:49

我可能只需要加入最后2个,但那可能是肮脏的

这里有一种方法:

//your date string
var dt = "2018-02-22 3:42:49 PM";
//slice date by index
var d = dt.slice(0,10);

//slice time by index 
var t = dt.slice(11,21);
//check if hour is double digits by checking length of dt string
if (dt.length > 21) {
t = dt.slice(11,22)
}
//add date and time with space inbetween
var dplust = d + ' ' + t;
//get p ids for example
var justDate = document.getElementById("justDate");
var justTime = document.getElementById("justTime");
var dplustDiv = document.getElementById("dplust");
//set inner html of p for examples
justDate.innerHTML = 'This is just date - ' + d;
justTime.innerHTML = 'This is just time - ' + t;
dplustDiv.innerHTML = 'This is date plus time - ' + dplust;
console.log(d);
console.log(t);
<p id="justDate"></p>
<p id="justTime"></p>
<p id="dplust"></p>

您可以将String.protype.match((与regex和String.protype.slice((一起使用,然后您只得到2个

let dateString = "2018-02-22 3:42:49 PM";
let dateParts = dateString.match(/^(S+)s(.*)/).slice(1); // slice(1) removes the first match as that is the full string which is not needed
console.log('1: ', dateParts[0] + ', ' + dateParts[1]);
// or because it's only two parts you can also use join
console.log('2: ', dateParts.join(', '));
console.log('Array length: ' + dateParts.length, dateParts);

在这种情况下,之所以使用.match()而不是.split(),是因为使用.match()可以使用后备。显然,javascript中的.split()不支持这一点。

我希望这能帮助你,因为考虑一下它,而不是做一个数组,

也许你只需要用索引来识别空间,然后从字符串中获取你想要的内容:

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

祝你过得愉快!

那个?

function transfDate(sDate)
{
let [yyyy,mm,dd,h,m,s,t] = sDate.match(/d{1,4}|AM|PM/g)
return [`${yyyy}-${mm}-${dd}`, `${h}:${m}:${s} ${t}`]
}
console.log( transfDate( '2018-02-22 3:42:49 PM')  )
// return -> [ "2018-02-22", "3:42:49 PM" ]

最新更新