Javascript format date / time
本问题已经有最佳答案,请猛点这里访问。
我需要将日期/时间从2014-08-20 15:30:00更改为2014年8月20日下午3:30
可以使用javascript的Date对象完成吗?
是的,您可以使用本机javascript Date()对象及其方法。
例如,您可以创建一个函数,如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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(),因为它已被弃用。
演示http://jsfiddle.net/a_incarnati/kqo10jLb/4/
请不要重新发明轮子。有许多开源和&amp;已经存在的COTS解决方案可以解决这个问题。
请查看以下JavaScript库:
-
Moment.js:[来源] | [精缩]
-
Datejs:[来源] | [Alpha1.zip(1.6MB)]
演示
我用下面的Moment.js写了一个单行。您可以在这里查看演示:JSFiddle。
1 | moment('2014-08-20 15:30:00').format('MM/DD/YYYY h:mm a'); // 08/20/2014 3:30 pm |
对于日期部分:(月份为0索引,而天数为1索引)
1 2 | var date = new Date('2014-8-20'); console.log((date.getMonth()+1) + '/' + date.getDate() + '/' + date.getFullYear()); |
当你想要创建一个函数来测试不同的情况和转换。
我不认为可以使用本机Date对象上的内置方法可靠地完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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; } |
你可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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); |
小提琴