是否有内置函数或插件来处理JavaScript中的日期格式?

时间:2012-09-28 00:52:39

标签: php javascript datetime date-formatting

目前我需要输出一个日期:'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);

3 个答案:

答案 0 :(得分:3)

不,Dateobjects没有内置功能,但是有很多库可以处理和格式化它们:

答案 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分钟。