Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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将字符串(2016年7月30日)转换为日期(2016年7月30日)_Javascript_Angularjs - Fatal编程技术网

使用Javascript将字符串(2016年7月30日)转换为日期(2016年7月30日)

使用Javascript将字符串(2016年7月30日)转换为日期(2016年7月30日),javascript,angularjs,Javascript,Angularjs,我想将字符串转换为日期格式 我的字符串格式是2016年7月30日,希望转换为2016年7月30日。只使用javascript。如果没有像矩这样的库,最好的方法是保留一个月数组来获取数值(不能保证每个浏览器都会解析该日期),然后拆分字符串并解析它 var月=[ “一月”, 二月,, “三月”, “四月”, “五月”, "六月",, 七月,, "八月",, "九月",, “十月”, 十一月,, “十二月” ]; 功能板(x){返回x

我想将字符串转换为日期格式


我的字符串格式是2016年7月30日,希望转换为2016年7月30日。只使用javascript。

如果没有像矩这样的库,最好的方法是保留一个月数组来获取数值(不能保证每个浏览器都会解析该日期),然后拆分字符串并解析它

var月=[
“一月”,
二月,,
“三月”,
“四月”,
“五月”,
"六月",,
七月,,
"八月",,
"九月",,
“十月”,
十一月,,
“十二月”
];
功能板(x){返回x<10?'0'+x:x};//零填充
var str=“2016年7月30日”;
var parts=str.split('-');
风险值日期=新日期(第[2]部分,月数。指数)(第[1]部分,第[0]部分);
//现在您可以输出任何内容
var new_date=date.getFullYear()+'-'+pad(date.getMonth()+1)+'-'+pad(date.getDate());
document.body.innerHTML=新建日期另一种方式:

function formatDate(string) {
  var date = new Date(string),
      dd = date.getDate(),
      mm = date.getMonth() + 1,
      yyyy = date.getFullYear();

  dd = dd < 10 ? '0' + dd : dd;
  mm = mm < 10 ? '0' + mm : mm;

  return yyyy + '-' + mm + '-' + dd;
}

console.log(formatDate('30-Jul-2016')); // 2016-07-30
函数格式日期(字符串){
变量日期=新日期(字符串),
dd=date.getDate(),
mm=日期。getMonth()+1,
yyyy=date.getFullYear();
dd=dd<10?'0'+dd:dd;
毫米=毫米<10英寸0英寸+毫米:毫米;
返回yyyy+'-'+mm+'-'+dd;
}
控制台日志(格式日期('2016年7月30日');//2016-07-30
var d=新日期('2016年7月30日)。拆分('-')。加入(''),
dFormated=d.getFullYear()+'-'+('0'+(d.getMonth()+1)).slice(-2)+'-'+d.getDate();
控制台日志(数据格式)试试这个

var日期='2016年7月30日';
日期=日期。拆分('-')。合并('');
var d=新日期(日期);
警报(d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate());
log(d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate())请尝试此代码

var date = '30-Jul-2016';
date = date.split('-').join(' ');
var d = new Date(date);
    dd = d.getDate();
      mm = d.getMonth() + 1;
      yyyy = d.getFullYear();

  dd = dd < 10 ? '0' + dd : dd;
  mm = mm < 10 ? '0' + mm : mm;
alert(yyyy + '-'+mm +'-'+ dd);
var日期='2016年7月30日';
日期=日期。拆分('-')。合并('');
var d=新日期(日期);
dd=d.getDate();
mm=d.getMonth()+1;
yyyy=d.getFullYear();
dd=dd<10?“0'+dd:dd;
毫米=毫米<10英寸0'+mm:mm;
警报(yyyy+'-'+mm+'-'+dd);

为了尽可能动态,我建议实现第一个Douglas Crockford的替换函数,并将其分配给String对象的原型()。以下是您的操作方法:

String.prototype.supplant = function (o) {
    return this.replace(/{([^{}]*)}/g,
        function (a, b) {
            var r = o[b];
            return typeof r === 'string' || typeof r === 'number' ? r : a;
        }
    );
};
之后,您可以实现如下内容:

function changeFormat(from, to){
    var months = [
      'Jan',
      'Feb',
      'Mar',
      'Apr',
      'May',
      'Jun',
      'Jul',
      'Aug',
      'Sep',
      'Oct',
      'Nov',
      'Dec'
    ];
    var date = new Date(from);
    return to.supplant({
        YYYY: date.getFullYear(),
        MMM: months[date.getMonth()],
        MM: date.getMonth()+1 > 9 ? date.getMonth()+1 : '0'+parseInt(date.getMonth()+1),
        DD: date.getDate() > 9 ? date.getDate() : '0' + parseInt(date.getDate())
    })
}
这就是它的工作原理:

changeFormat("30-Jul-2016","{YYYY}-{MM}-{DD}") // 2016-07-30
例如:

String.prototype.replacement=函数(o){
返回此.replace(/{([^{}]*)}/g,
功能(a、b){
var r=o[b];
返回typeof r=='string'| | typeof r=='number'?r:a;
}
);
};
函数更改格式(从、到){
风险值月份=[
“一月”,
二月,,
“三月”,
“四月”,
“五月”,
"六月",,
七月,,
"八月",,
"九月",,
“十月”,
十一月,,
“十二月”
];
var日期=新日期(从);
取而代之({
YYYY:date.getFullYear(),
MMM:months[date.getMonth()],
MM:date.getMonth()+1>9?date.getMonth()+1:'0'+parseInt(date.getMonth()+1),
DD:date.getDate()>9?date.getDate():“0”+parseInt(date.getDate())
})
}

日志(更改格式(“2016年7月30日”,“YYYY}-{MM}-{DD}”)var d=新日期('2016年7月30日')返回无效日期谢谢@KeyurShah。。更新的回答是,它在您编辑和添加split and join后工作。var date=新日期(字符串)返回无效日期在您的情况下,它返回有效的日期对象。“新日期('2016年7月30日')”//2016年7月30日星期六00:00:00 GMT+0300(MSK)