有人可以引導我在JavaScript的日期範圍?如何在javascript中計算周和月的日期範圍?
我想從今天的日期計算一個星期和一個月的日期範圍;也就是說,如果今天是「2010年7月18日」,則本週的範圍應該是「11/07/2010 - 8/07/2010」 ,並且本月的範圍應該是「01/07/2010 - 18/07/07/2010" 。
感謝您提前給予指導。
有人可以引導我在JavaScript的日期範圍?如何在javascript中計算周和月的日期範圍?
我想從今天的日期計算一個星期和一個月的日期範圍;也就是說,如果今天是「2010年7月18日」,則本週的範圍應該是「11/07/2010 - 8/07/2010」 ,並且本月的範圍應該是「01/07/2010 - 18/07/07/2010" 。
感謝您提前給予指導。
我會建議你看看優秀的datejs庫,它有許多有用的功能來操縱日期。
試試這個:
var now = new Date();
var nextWeek = new Date(new Date(now).setDate(now.getDate() + 7));
var nextMonth = new Date(new Date(now).setMonth(now.getMonth() + 1));
這裏是香草JS的功能,將採取日期(或空)作爲輸入,並返回與該周的開始和結束日期的對象(假設星期一是一週的第一天:))
function rangeWeek (dateStr) {
if (!dateStr) dateStr = new Date().getTime();
var dt = new Date(dateStr);
dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());
dt = new Date(dt.getTime() - (dt.getDay() > 0 ? (dt.getDay() - 1) * 1000 * 60 * 60 * 24 : 6 * 1000 * 60 * 60 * 24));
return { start: dt, end: new Date(dt.getTime() + 1000 * 60 * 60 * 24 * 7 - 1) };
}
console.log(rangeWeek());
console.log(rangeWeek('2013/9/1'));
您可以相應地更改週日到週六。
我知道這個帖子是老:)但謝謝你幫助我,出。這工作完美和預期。我很高興我不必自己拿出那個。 – 2016-02-08 23:00:27
我該如何循環以獲得從現在開始到本月結束的一週? – MizAkita 2016-03-10 01:59:05
我不確定如果說今天的日期是25日是否可以添加這樣的日期。它可能適用於某些瀏覽器,但可能適用於其他瀏覽器。 – Anurag 2010-07-18 09:21:25
根據規範和我見過的所有實現,Date.prototype.set *函數像這樣安全地溢出。例如ECMA-262 v.3(15.9.5.36,p.128)中的'setDate'基本上是說將天數轉成幾秒,然後將原始日期調整該秒數......所以如果有本月會比當前月份更多,該月將翻轉... – 2010-07-18 09:45:32
感謝@no,我錯誤地認爲溢出不會在每個瀏覽器上正確處理,並且始終採用手動時間戳轉換,所以這是很高興知道。 – Anurag 2010-07-18 16:53:22