目前我需要输出一个日期:'2012年10月5日'类型格式。表示日期,没有前导零,空格,完整月份名称,逗号,空格,四位数年份。我需要在JavaScript中执行此操作。我有这个工作,但它在我编写冗长的代码时发生,有人必须已经找到了更好的方法来做到这一点。
我认为没有JavaScript的内置功能可以根据我的需要进行格式化。 PHP中只有date()
。是否有一个JavaScript插件可以做同样的事情?
为了给出一个具体的例子,在这个例子中,我从未来需要获得日期的设定小时数开始。
目前我有:
var myNow = new Date().getTime();
var myTime = hours * 60 * 60 * 1000;
var myDate = new Date(myTime + myNow);
var myDay = myDate.getDate();
var myMonthNum = myDate.getMonth();
var myMonth = '';
var myYear = myDate.getFullYear();
switch(myMonthNum) {
case 0:
myMonth = 'January';
break;
...
var completeDate = myDate = " " + myMonth + ", " + myYear;
$('#theEndDate').html(completeDate);
答案 0 :(得分:3)
不,Date
objects没有内置功能,但是有很多库可以处理和格式化它们:
date
)答案 1 :(得分:1)
你有一些可以清理的无关代码:
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
today = new Date(),
completeDate = today.getDate() + " " + months[today.getMonth()] + ", " + today.getFullYear();
$('#theEndDate').html(completeDate);
使用库并不总是答案,特别是如果你只想在一个地方使用它。
答案 2 :(得分:-1)
有很多日期库,但如果您只想从日期对象生成一种特定格式,那么它非常简单:
var formatDate = (function() {
var months = ['January','February','March','April','May','June',
'July','August','September','October','November','December'];
return function(date) {
return date.getDate() + ' ' + months[date.getMonth()] + ', ' + date.getFullYear();
}
}());
alert(formatDate(new Date())); // 28 September, 2012
我认为花了不到5分钟。