如何在javascript中将这种复杂的日期格式转换为此格式

时间:2013-12-13 00:02:25

标签: javascript jquery

如何在Javascript中将此格式"Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)"转换为2014-01-31?我知道它应该很简单,但我没有从谷歌获得它

8 个答案:

答案 0 :(得分:11)

var d = new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)");
var str = $.datepicker.formatDate('yy-mm-dd', d);
alert(str);

http://jsfiddle.net/3tNN8/

这需要jQuery UI

答案 1 :(得分:7)

jsFiddle Demo

根据空格分割字符串。拿起零件并重建它。

function convertDate(d){
 var parts = d.split(" ");
 var months = {Jan: "01",Feb: "02",Mar: "03",Apr: "04",May: "05",Jun: "06",Jul: "07",Aug: "08",Sep: "09",Oct: "10",Nov: "11",Dec: "12"};
 return parts[3]+"-"+months[parts[1]]+"-"+parts[2];
}

var d = "Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)";
alert(convertDate(d));

答案 2 :(得分:4)

你可以这样做

var date = new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)");
var year=date.getFullYear();
var month=date.getMonth()+1 //getMonth is zero based;
var day=date.getDate();
var formatted=year+"-"+month+"-"+day;

我看到你正在尝试格式化日期。你应该完全放弃它并使用jQuery UI

你可以像这样格式化

var str = $.datepicker.formatDate('yy-mm-dd', new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)");

我发现Web Developer's Notes有助于格式化日期

答案 3 :(得分:1)

对于这样的事情,在浏览器控制台中进行一些测试通常很好。

var date = new Date("Fri Jan 31 2014 00:00:00 GMT-0800 (Pacific Standard Time)");
console.log(date.getFullYear() + '-' + date.getMonth()+1 + '-' + date.getDate())

确保在getMonth()的结果中添加+ 1,因为它基于零。

这里也提出了类似的问题:

Where can I find documentation on formatting a date in JavaScript?

答案 4 :(得分:0)

您也可以使用Moment.js库,请务必进行搜索。

几个例子:moment().format('MMMM Do YYYY, h:mm:ss a');

moment().format('dddd');

答案 5 :(得分:0)

A trifling refinement: 
              var date = new Date(value);
              var year = date.getFullYear();
              var rawMonth = parseInt(date.getMonth()) + 1;
              var month = rawMonth < 10 ? '0' + rawMonth : rawmonth;
              var rawDay = parseInt(date.getDate());
              var day = rawDay < 10 ? '0' + rawDay : rawDay; 
              console.log(year + '-' + month + '-' + day);

答案 6 :(得分:0)

start_date="14 Feb 2020";
var new_startDate= new Date(start_date);
var date= moment(new_startDate).format('YYYY-MM-DD');

答案: 2020-02-14

在这里您必须使用moment.js

答案 7 :(得分:0)

最简单的转换方法是

new Intl.DateTimeFormat('en-US', {
  year: 'numeric',
  month: 'long',
  day: '2-digit'
}).format(new Date('Your Date'))

只需用复杂的日期格式替换“您的日期”:)