Javascript格式date/时间

我需要将2014-08-20 15:30:00的date/时间更改为08/20/2014 3:30 pm

这可以使用javascript的Date对象来完成吗?

是的,您可以使用本地JavaScript Date() 对象及其方法。

比如你可以创build一个如下的函数:

 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; return date.getMonth()+1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + strTime; } var d = new Date(); var e = formatDate(d); alert(e); 

并显示上午/下午和正确的时间。

请记住使用getFullYear()方法而不使用getYear(),因为它已被弃用。

DEMO http://jsfiddle.net/a_incarnati/kqo10jLb/4/

请不要重新发明轮子。 现在已经有很多开源和COTS解决scheme来解决这个问题。

请看下面的JavaScript库:

  • Moment.js : [Source] | [精缩]

  • Datejs : [Source] | [Alpha1.zip(1.6MB)]


演示

我使用下面的Moment.js写了一行。 您可以在这里查看演示: JSFiddle 。

 moment('2014-08-20 15:30:00').format('MM/DD/YYYY h:mm a'); // 08/20/2014 3:30 pm 

对于date部分:(月份为0索引而天数为1索引)

 var date = new Date('2014-8-20'); console.log((date.getMonth()+1) + '/' + date.getDate() + '/' + date.getFullYear()); 

当时你会想创build一个函数来testing不同的情况并进行转换。

希望这可以帮助

我不认为可以使用本地Date对象的内置方法来完成RELIABLY。 toLocaleString方法变得非常接近,但是如果我正确地记住了,它在IE <10时将不能正常工作。如果你能够使用一个库来完成这个任务, MomentJS是一个非常了不起的库。 这使得date和时间的工作变得简单。 否则,我认为你将不得不写一个基本的函数来给你你之后的格式。

 function formatDate(date) { var year = date.getFullYear(), month = date.getMonth() + 1, // months are zero indexed day = date.getDate(), hour = date.getHours(), minute = date.getMinutes(), second = date.getSeconds(), hourFormatted = hour % 12 || 12, // hour returned in 24 hour format minuteFormatted = minute < 10 ? "0" + minute : minute, morning = hour < 12 ? "am" : "pm"; return month + "/" + day + "/" + year + " " + hourFormatted + ":" + minuteFormatted + morning; } 

你可以这样做:

 function formatAMPM(date) { // This is to display 12 hour format like you asked 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; return strTime; } var myDate = new Date(); var displayDate = myDate.getMonth()+ '/' +myDate.getDate()+ '/' +myDate.getFullYear()+ ' ' +formatAMPM(myDate); console.log(displayDate); 

小提琴