如何在javascript中获取当前日期的第n个工作日

How to get nth Weekday of Current date in javascript

本文关键字:工作日 当前日期 获取 javascript      更新时间:2023-09-26

我需要在 js 中检索当前日期的第 n 个工作日,例如第一个星期日、第二个星期日

var d=new Date();var weekDay=d.getDay();

这里工作日给了我 4,这意味着它的星期三(第三个星期三)。到目前为止,它很好。

从工作日开始,我可以说是星期三。

如何计算本周三的"3rd"指数?

谢谢

你到底是什么意思?要获取日期,您可以使用 Date()。例如,创建一个变量"今天"并将其设置为今天的日期。

var today = new Date();

在更大的上下文中,您可以显示工作日,日期,年份等所有内容!我将在下面提供一个代码位。该代码以 HTML 格式显示动态时钟/日期。

您可以按照自己的方式设置格式,并选择要显示的变量!顺便说一句,这与此处找到的代码相同:其他线程/问题

<!DOCTYPE html>
<html>
    <head>
        <script>
            function startTime() {
                var today=new Date();
                var day = today.getDate();
                var month = today.getMonth();
                var year = today.getFullYear();
                var h=today.getHours();
                var m=today.getMinutes();
                var s=today.getSeconds();
                m = checkTime(m);
                s = checkTime(s);
                document.getElementById('txt').innerHTML = "Date: " + day + "/" + month + "/" + year + " " + "Clock: " + h+":"+m+":"+s;
                var t = setTimeout(function(){startTime()},500);
            }
            function checkTime(i) {
                if (i<10) {i = "0" + i};  // add zero in front of numbers < 10
                return i;
            }
        </script>
    </head>
    <body onload="startTime()">
        <div id="txt"></div>
   </body>
</html>

这是你的意思吗?

像这样的东西

    function getNth(dat) {
        var days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday','saturday'],
            nth  = ['st', 'nd', 'rd', 'th', 'th'],
            d    = dat ? dat instanceof Date ? dat : new Date(dat) : new Date(),
            date = d.getDate(),
            day  = d.getDay(),
            n    = Math.ceil(date / 7);
        
        return n + nth[n-1] + ' ' + days[day];
    }
    document.body.innerHTML = '' +
        'today ....: ' + getNth() + '<br>' +
        '1/31/2015 : ' + getNth('1/31/2015') + '<br>' +
        '1/16/2015 : ' + getNth('1/16/2015');
body {font-family: monospace}

根据我的理解,您希望从今天开始的日期是第一个,第二个星期日/星期一。如果是这样,那么您可以使用这个

//consider sun=o,mon=1,....,sat:6
function getWeekday(n,day)
{
    var today = new Date();
    var presentDay = today.getDay();
    var presentTime = today.getTime();
    if(day < presentDay)
    {
        day = day +6;
    }
    var diff = day - present day;
    var daysAfter = (n-1)*7 + diff;
    var timeAfter = presentTime+daysAfter*86400000;
    var next date = new Date(timeAfter);
}
// if you want to get 1st sunday from today just call this
   var sunday1 = getWeekday(1,0)
// to get second monday from today 
   var monday2 = getWeekday(2,1)