使用Moment.js查找当前周的特定日期

时间:2014-03-24 00:52:28

标签: javascript jquery date momentjs

使用Moment.js查找当前特定日期的日期


有很多方法可以在javascript中操作日期。我一直在寻找最简单,最简单的方法,没有冗长,丑陋的代码,所以有人向我展示Moment.js

我想使用当前日期通过此库发现当前周的特定日期。到目前为止,我的尝试涉及取当前日期数(第0-6天)与检查它与星期一(第1天)之间的天数之间的差异,这是不正确的。

Here's my fiddle.

这是我的代码:

var now = moment();

var day = now.day();

var week = [['sunday',0],['monday',1],['tuesday',2],['wednesday',3],['thursday',4],['friday',5],['saturday',6]];

var monday = moment().day(-(week[1][1] - day));//today minus the difference between monday and today

$("#console").text(monday);

//I need to know the date of the current week's monday
//I need to know the date of the current week's friday

我该怎么做?我的方法可能是完成这项工作的可怕方法,或者可能有些接近。我确实希望解决方案整洁,小巧,动态,简单,因为所有代码都应如此。

我不想使用本机JS日期功能,这种功能会在我见过的每种情况下产生丑陋,凌乱的代码。

3 个答案:

答案 0 :(得分:61)

本周的周日

moment().startOf('week')

本周的星期一

moment().startOf('isoweek')

本周的周六

moment().endOf('week')

当天到周日之间的差异

moment().diff(moment().startOf('week'),'days')

本周的Wedesday

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

答案 1 :(得分:1)

不再仅仅使用字符串(例如' isoweek'),我们需要像这样使用它:

import * as moment from 'moment';
import { unitOfTime } from 'moment';

moment().startOf('isoweek' as unitOfTime.StartOf);

答案 2 :(得分:0)

也许聚会晚了一点,但这是正确的方法,例如documentation

moment().day(1); // Monday in the current week

此外,如果在您的区域设置中,该周从星期一开始,并且您希望获得本地了解的结果,则可以使用moment().weekday(0)Here's the documentation用于moment().weekday(dayNumber)方法。