我是JS新手。有人可以告诉我用Javascript是否可以将字符串(例如:“ 140000”)转换为时间(例如:14:00:00)。
答案 0 :(得分:2)
您可以这样做:
split
方法将文本分割成一个数组。item + :
方法将所有具有索引的项目替换为map
。join
方法再次将您的数组添加为字符串。:
。
let convertToTime = str => str
.split("")
.map((item, index) => (index % 2 != 0) ? item + ':' : item)
.join("")
.slice(0, -1);
console.log(convertToTime("140000")); // 14:00:00
console.log(convertToTime("173003")); // 17:30:03
console.log(convertToTime("225510")); // 22:55:10
console.log(convertToTime("010201")); // 01:02:01
答案 1 :(得分:0)
这有点棘手,因为……在Javascript中没有Time
对象。
只有一个Date
对象,尽管名称有点误导,因为Date
对象同时包含“日期”和“时间”。这种看似混乱的约定背后有一个原因。我不会花太多时间来详细说明,但简而言之,(对于人脑)引用“时间”是不可靠的。
为此,我只推荐reading this answer,它会非常好地解释它。
无论哪种方式,这个简单的功能都能解决问题。
toDate(what){}
在成功的时间转换字符串之后,
return
是一个新创建的Date
对象。否则为return -1
。 (或者您也可以抛出Exception
,由您自己决定)
var str = '143025';
function toDate(what){ // turns string into Date() object
var result;
if (what.length === 6) { // must be in HH:MM:SS length
var timearr = what.match(/.{1,2}/g); // splits time to HH:MM:SS array
if (timearr[0] <= 24 && timearr[1] <= 60 && timearr[2] <= 60){
return new Date('01 January 0001 ' + timearr[0] + ':'+
timearr[1] + ':' + timearr[2] + ' GMT'); // valid time format
}
}
return -1;
}
var mytime = toDate(str);
console.log(mytime.toUTCString());
请注意,Date
本身仅是序列号的表示,如果要返回时间作为结果,则需要使用{{的.toString
或.toUTCString
方法1}}对象。