如何在给定时间内找到星期一?

时间:2014-11-02 05:00:26

标签: javascript date

我试图找到我所给予的任何一天的星期一。 它有两个要求。

例如:

1. If given day is Monday through Friday, find the last closest Monday, 
   so if the given day is 10-31, I need to get 10-27
2. If given day is Saturday or Sunday, find the next Monday.

JavaScript的:

var today = new Date(); //assuming it's 11/1/2014 Saturday
var todayDay = today.getDay(); > 6


if(todayDay == 6) {
    var Monday = today.getDate() + 2;
}    

我不确定如何动态地找到星期一的日期和时间。我已经查找了javascript day方法,但不确定如何获取它。任何人都可以帮我吗?谢谢!

2 个答案:

答案 0 :(得分:2)

所以改写你的要求是:星期天开始一周,在那一周找星期一。

使用moment.js太容易了......

本周的周日

moment().startOf('week')

所以要找周一做

moment().startOf('week').add('days', 1)

修改

您可以使用以下时刻功能

更改周开始
moment.lang('en-in', {
    week : {
        dow : 1 // Monday is the first day of the week
    }
});

和获取索引的星期几是

   daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],

答案 1 :(得分:1)

javscript的Date对象包含对此有帮助的方法getDay()setDate()getDate()



"use strict";

var d = document.getElementById('d');
var mon = document.getElementById('mon');

var handleDatePick = function(ev){
  var the_date = new Date(d.value);
  if (the_date.getDay() <= 4) {
      the_date.setDate( the_date.getDate() - the_date.getDay() );
  } else {
    the_date.setDate( the_date.getDate() + 7 - the_date.getDay() );
  }
  var output = 'the nearest monday is ' + the_date.toUTCString();
  mon.value = output;
};

d.addEventListener('input',handleDatePick);
&#13;
input, output {
  display: block;
  clear: both;
}
&#13;
pick the date: <input type="date" id="d" />

<output id="mon" for="d"></output>
&#13;
&#13;
&#13;