1

目前我需要以“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);
4

3 回答 3

3

Date不, objects没有内置任何东西,但是有一堆库可以处理和格式化它们:

于 2012-09-28T01:01:20.143 回答
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);

使用库并不总是答案,特别是如果你只打算在一个地方使用它。

于 2012-09-28T01:36:46.447 回答
-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 分钟。

于 2012-09-28T05:15:29.363 回答