Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从给定的长日期转换为适当的日期格式_Javascript_Angular_Ecmascript 6 - Fatal编程技术网

Javascript 从给定的长日期转换为适当的日期格式

Javascript 从给定的长日期转换为适当的日期格式,javascript,angular,ecmascript-6,Javascript,Angular,Ecmascript 6,我有一个这样的约会- date= "2 march 2018" 我想把它转换成“20180302”格式。为此,我使用以下方法: var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); return [year, month, day].join(''); 一切正常,只是如果我的日期没有日期或月份,它应该返回空值来代

我有一个这样的约会-

date= "2 march 2018"
我想把它转换成“20180302”格式。为此,我使用以下方法:

var d = new Date(date),
    month = '' + (d.getMonth() + 1),
    day = '' + d.getDate(),
    year = d.getFullYear();

return [year, month, day].join('');
一切正常,只是如果我的日期没有日期或月份,它应该返回空值来代替日期和月份。例如:如果我的日期输入为

date= "march 2018"

然后,day=''+d.getDate()应返回空。如果日期为“2018”,则月份=“”+(d.getMonth()+1)和日期=“”+d.getDate()应返回null。我知道这是一个糟糕的做法,但在我的申请中,我需要检查日期和月份是否存在

您可以使用moment.js使用一行代码来完成,请查看下面的JSFIDLE链接

  var date= "2 march 2018";
  var sp_date=date.split(" ");
  var d = new Date(date);
  if(sp_date.length==3){
  month = '' + (d.getMonth() + 1);
  day = '' + d.getDate();
    year = d.getFullYear();
}else if(sp_date.length==2){
  if(isNaN(Number(sp_date[0]))===false){
    day = sp_date[0];
    month='';
    year=sp_date[1];
  }else{
  day ='';
   month = '' + (d.getMonth() + 1);
     year = d.getFullYear();
  }
}else if(sp_date.length==1){
   day ='';
   month = '';
     year = d.getFullYear();
}


return [year, month, day].join('');

对于输入“march 2918”,结果仍然是20180301,但if(数字(sp_日期[0])==true)中存在错误。它的说法“==”不能应用于数字类型,booleanI将其更改为if(数字(sp_日期[0]),其工作正常
var date = moment("2 march 2018").format('YYYYMMDD');