javascript - 获取过去几天的名称(例如 : 7 days ago, 8 天前...)

标签 javascript jquery

我正在尝试查找过去几天的名字。我正在使用此脚本成功获取过去 7 天的名称,但是,如果我增加过去的天数,例如 7 天前、8 天前或更长时间,则它不起作用。

var dayOfWeek = new Array();  

dayOfWeek[0] = "Sun";  
dayOfWeek[1] = "Mon";  
dayOfWeek[2] = "Tue";  
dayOfWeek[3] = "Wed";  
dayOfWeek[4] = "Thu";  
dayOfWeek[5] = "Fri";  
dayOfWeek[6] = "Sat";  

var myDate = new Date();
myDate.setDate(myDate.getDate());
var myDate1 = new Date();
myDate1.setDate(myDate1.getDate() - 1);
var myDate2 = new Date();
myDate2.setDate(myDate2.getDate() - 2);
var myDate3 = new Date();
myDate3.setDate(myDate3.getDate() - 3);
var myDate4 = new Date();
myDate4.setDate(myDate4.getDate() - 4);
var myDate5 = new Date();
myDate5.setDate(myDate5.getDate() - 5);
var myDate6 = new Date();
myDate6.setDate(myDate6.getDate() - 6);

var on1 = dayOfWeek[myDate.getDay()];
var on2 = dayOfWeek[myDate1.getDay()];
var on3 = dayOfWeek[myDate2.getDay()];
var on4 = dayOfWeek[myDate3.getDay()];
var on5 = dayOfWeek[myDate4.getDay()];
var on6 = dayOfWeek[myDate5.getDay()];

document.write(on5);

正确的方法是什么?

最佳答案

如果我理解正确的话,你正在尝试做类似的事情(假设今天是星期三):

  • 两天前是星期一
  • 5 天前是星期五
  • 8 天前是星期二

如果这是正确的,那么应该这样做:

function getDayOfWeekAgo(daysAgo) {
    var today = new Date().getDay(),
        days = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
    today = (today+daysAgo*6)%7; // adding 6 per day is the same as subtracting one
                              // due to the modulo, just without the complications
                              // that negative numbers would bring
    return days[today];
}

或者,更有效的是:

window.getDayOfWeekAgo = (function() {
    var today = new Date().getDay(),
        days = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
    return function(daysAgo) {return days[(today+daysAgo*6)%7];}
})();

关于javascript - 获取过去几天的名称(例如 : 7 days ago, 8 天前...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15870561/

相关文章:

javascript - API 和网站位于同一端口的请求资源上不存在 'Access-Control-Allow-Origin' header

javascript - 如何在 jQuery 应用程序的两个选项卡中添加 Google map

javascript - 为什么在一个 js 文件中创建的函数在调用甚至在另一个 js 文件中创建时不起作用?

javascript - Google Universal Analytics - 中止分析调试器中的命中错误

jquery - 使div停留在点击Jquery asp.net

javascript - 如何在 JavaScript 中将数字格式化为百分比值?

javascript - 表单验证 - 输入意外结束

javascript - 追加到尚未插入文档的新节点

javascript - 使用 jQuery (Javascript) 的 Firebase 推送通知

javascript - 使用元素 ID 填充 jQuery UI 自动完成列表