0

如何使用 jQuery 以下面的格式显示日期。

Thursday, January 08, 2013

我看到了一些插件,但想知道是否有不使用任何插件的方法。

请告知是否有使用 JavaScript 的简单答案,那也很好。

4

4 回答 4

3

最简单的答案是使用:

date.toLocaleDateString()

但是,它将使用用户系统定义的语言环境。适合您所需输出的美国/英语语言环境。(我不确定其他语言环境以及它们如何格式化日期)。

因此,如果您希望日期字符串始终采用该格式,这对您来说不是最佳答案。但是,如果您希望日期与用户的语言环境匹配,这个答案是最简单和最正确的。:)

http://jsfiddle.net/SyjpS/

var date = new Date(); 
console.log(date.toLocaleDateString());  // Tuesday, January 08, 2013 (on my machine)

编辑— 如果您要询问如何更改日历以便今天是星期四而不是星期二,您可能需要与 Caesar 讨论调整日历调整的问题。为此,您需要一台时间机器。我建议你去找医生,但他可能不愿意随意改变历史。

于 2013-01-08T20:03:13.840 回答
2

这是您所要求的快速/简单示例:

编辑- 我更新了代码以供重用并包括第 0 天的填充更改。

var d = new Date();
console.log(formatDate(d)); 

function formatDate(d){
    var months = ["Januaray", "February", "March"]; //you would need to include the rest
    var days = ["Sunday", "Monday", "Tuesday"];//you would need to include the rest
    return days[d.getDay()] + ", " + months[d.getMonth()] + " " + (d.getDate() < 10 ? "0" + d.getDate() : d.getDate()) + ", " + d.getFullYear();
}

今天的输出:Tuesday, Januaray 08, 2013

例子

于 2013-01-08T20:00:31.717 回答
1

只需使用DateJS而不是重新发明轮子。

您可以在此处阅读 API 文档:

于 2013-01-08T19:46:55.970 回答
0

date 方法允许您检索日期和时间的所有不同部分作为数值。在一年中的月份和星期几的情况下,提供的数字比您通常预期的少一。原因是这些值最常见的用途是使用它从数组中查找月份或日期的名称,因为 JavaScript 中的数组从零开始编号,提供这样的数字可以减少代码量需要进行名称查找。

不过,我们可以比仅使用检索到的值进行此查找更好。我们可以做的是向 Date 对象添加额外的方法,以允许我们在需要与检索有关日期的任何其他信息完全相同的方式时检索月份和日期名称。

以下方法未内置到 JavaScript 语言本身的可能原因是它们依赖于语言,并且需要根据您要显示月份和日期的语言将不同的值替换到代码中。出于以下目的向您展示如何编写代码,我将使用 Emglish 名称来表示月份和日期。如果您想以不同的语言显示日期,您需要用该语言的名称替换它们的英文对应名称。

我们要做的是在所有日期中添加 getMonthName() 和 getDayName() 方法,这样我们就可以通过直接调用这些新方法来获取月份名称或日期名称,而不必调用 getMonth() 或 getDay()然后进行相应名称的数组查找。我们实际上正在做的是在新方法中构建所需的数组查找,以便我们可以通过调用适当的方法自动获取任何日期对象的正确名称。

我们不需要这么多的代码来做到这一点。要将 getMonthName() 和 getDayName() 方法添加到您使用的所有日期对象,您需要做的就是将以下一小段代码添加到附加到页面头部的 JavaScript 代码的最顶部。然后对日期对象的任何后续处理都可以使用这些方法。

Date.prototype.getMonthName = function() {
var m = ['January','February','March','April','May','June','July',
'August','September','October','November','December'];
return m[this.getMonth()];
} 
Date.prototype.getDayName = function() {
var d = ['Sunday','Monday','Tuesday','Wednesday',
'Thursday','Friday','Saturday'];
return d[this.getDay()];
}

因此,现在有了这些,我们可以使用除了现有方法之外的新方法在页面上显示今天的日期。例如,我们可以使用以下内容获取完整日期并使用警报显示它:

var today = new Date;
alert((today.getDayName() + ', ' + today.getDate() + ' ' + today.getMonthName() + ', ' + today.getFullYear());

或者,我们可以只检索当前月份的六月和星期天星期天并使用它们,但是我们希望与日期的任何其他部分相同。

function disp() {
var today = new Date;
document.getElementById('mth').innerHTML = today.getMonthName();
document.getElementById('dow').innerHTML = today.getDayName();
}
于 2014-06-22T13:29:33.327 回答