在javascript中将日期格式化为所需格式

时间:2015-11-27 08:23:15

标签: javascript

如何修改以下功能以所需格式输出日期?

发送格式化日期:

原始格式:2015-10-27 21:41:22

var d = new Date(globalStore.data[i].DateReg);
var e = formatDate(d);

日期功能:

function formatDate(date) {
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var ampm = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var strTime = hours + ':' + minutes + ' ' + ampm;//to show time
  return date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear() + " ";
}

所需格式:

14 Nov 2015

5 个答案:

答案 0 :(得分:0)

日期格式化非常繁琐,为什么不找到一个简单的方法.. 使用moment.js非常简单,

http://momentjs.com/

var date = moment().format('DD MMM YYYY')

答案 1 :(得分:0)

如果你想要2015年11月14日

var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    ];

var date = new Date();
var yourDateformat =  date.getDate() + " " + monthNames[date.getMonth()] + " " + date.getFullYear();

答案 2 :(得分:0)

我建议使用库moment.js

var d = moment(globalStore.data[i].DateReg, 'YYYY-MM-DD HH:mm:ss'); // Convert raw date type string to type Datetime
moment(d).format('DD MMM YYYY'); // 27 Nov 2015

OR

function formateDate(strDate) {
    return moment(globalStore.data[i].DateReg, 'YYYY-MM-DD HH:mm:ss').format('DD MMM YYYY');
}

答案 3 :(得分:0)

<强> Working fiddle

另外我建议使用momment.js lib,但如果你不能使用额外的库,你可以使用一个短月份名称来实现:

&#13;
&#13;
var shodtMonthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",  "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec"];

var d = new Date("2015-10-27 21:41:22");

var day   = d.getDate();
var month = shodtMonthNames[d.getMonth()];
var year  = d.getFullYear();

console.log( day + " " + month + " " + year );
&#13;
&#13;
&#13;

希望这有帮助。

答案 4 :(得分:0)

这是一个有点蹩脚的解决方案,但我不认为定义一个新数组来保持月份名称是必要的。你可以使用你已经拥有的那些。

var date = new Date().toDateString().split(' ');
// 'Sat Nov 28 2015'
var result = date[2] +' '+ date[1] +' '+ date[3];
// '28 Nov 2015'