我写了一个简单的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);
}
来自控制台窗口的图片(月,年,小时和分钟为空字符串):
答案 0 :(得分:3)
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);
}
答案 1 :(得分:0)
使用String.prototype.substr代替slice