Javascript切片方法无法按预期工作

时间:2017-04-20 10:12:30

标签: javascript

我写了一个简单的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);
  
  
  
  
}

来自控制台窗口的图片(月,年,小时和分钟为空字符串):

enter image description here

2 个答案:

答案 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