我写了一个简单的javascript函数,将字符串转换为日期(格式为“ dd.MM.yyyy HH.mm”)。
为了提取该字符串的一部分,我使用了slice
方法。
对我来说奇怪的是,只有一天能按预期返回。所有其他变量只是空字符串。
我究竟做错了什么?
(
function(){
alert(GetDateFromStringDateTime("20.04.2017 18:15"));
}
)();
function GetDateFromStringDateTime(dateStr){
var day = dateStr.slice(0,2);
var month = dateStr.slice(3,2);
var year = dateStr.slice(6,4);
var hour = dateStr.slice(11,2);
var minute = dateStr.slice(14,2);
return new Date(year,month,day,hour,minute);
}
控制台窗口中的图片(月,年,小时和分钟为空字符串):
最佳答案
String#slice()
使用均从零开始的索引的start和end参数
console.log(GetDateFromStringDateTime("20.04.2017 18:15"));
function GetDateFromStringDateTime(dateStr) {
var day = dateStr.slice(0, 2);
var month = dateStr.slice(3, 5);
var year = dateStr.slice(6, 10);
var hour = dateStr.slice(11, 13);
var minute = dateStr.slice(14, 16);
console.log(day);
console.log(month);
console.log(year);
console.log(hour);
console.log(minute);
return new Date(year, month, day, hour, minute);
}