如何获得星期几和一年中的月份?

2022-08-30 02:34:02

我对Javascript知之甚少,我发现的其他问题与日期操作有关,而不仅仅是根据需要获取信息。

目的

我希望得到如下格式的日期:

打印于 星期四, 27 1月 2011 在 17:42:21

到目前为止,我得到了以下内容:

var now = new Date();
var h = now.getHours();
var m = now.getMinutes();
var s = now.getSeconds();

h = checkTime(h);
m = checkTime(m);
s = checkTime(s);

var prnDt = "Printed on Thursday, " + now.getDate() + " January " + now.getFullYear() + " at " + h + ":" + m + ":" s;

我现在需要知道如何获取星期几和一年中的月份(它们的名字)。

有没有一种简单的方法来制作它,或者我应该考虑使用数组,在那里我会简单地使用和索引到正确的值?now.getMonth()now.getDay()


答案 1

是的,您将需要数组。

var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];

var day = days[ now.getDay() ];
var month = months[ now.getMonth() ];

或者,您可以使用日期.js库。


编辑:

如果您要经常使用这些功能,则可能需要扩展辅助功能。Date.prototype

(function() {
    var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];

    var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];

    Date.prototype.getMonthName = function() {
        return months[ this.getMonth() ];
    };
    Date.prototype.getDayName = function() {
        return days[ this.getDay() ];
    };
})();

var now = new Date();

var day = now.getDayName();
var month = now.getMonthName();

答案 2

使用标准的 javascript Date 类。不需要数组。无需额外的库。

查看 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

var options = {  weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false };
var prnDt = 'Printed on ' + new Date().toLocaleTimeString('en-us', options);

console.log(prnDt);