如何获得一周的一天和一年的月份?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我对Javascript不太了解,我发现的其他问题都与日期操作有关,而不仅仅是获取我需要的信息。

目标

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

时间:2018,星期四,下午5: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()?

提问于
用户回答回答于

是的,你需要数组。

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() ];

或者可以使用date.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();
用户回答回答于

不幸的是,Date对象仅以数字格式返回有关月份的信息。你能做的更快的事情是创建一个月数组(它们不应该经常更改!),并创建一个函数,它根据数字返回名称。

就像这样:

function getMonthNameByMonthNumber(mm) { 
   var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

   return months[mm]; 
}

因此,你的代码变成:

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

扫码关注云+社区