2016-03-22 61 views
1

我有這樣的代碼:週一天,那一刻JS

var day = $("#date-filter").val(); 

此輸入的值是: 「22/03/2016」。

我需要一週的時間。

我試圖用2種方法做,但不起作用。

1)moment(day).day()

2)moment($("#date-filter").val()).day()

回答

2

moment作品的日期,而不是字符串。處理之前,你需要分析你的日期字符串爲Date對象,然後纔將它傳遞給moment

var day = '22/03/2016', parsed = day.split('/'); 

moment(new Date(parsed[2], parsed[1] - 1, parsed[0])).day() 

返回2(實際上,星期二)。 - 1在這裏是必要的,因爲JavaScript的月份以0開頭。

+0

謝謝!它工作完美無瑕。 –

1

Moment的解析器可以很好地處理這個用例,而不需要對月份進行任何調整。

moment('22/03/2016', 'DD/MM/YYYY').day() 

,如果你喜歡它,甚至會顯示上週一天你的名字:

moment('22/03/2016', 'DD/MM/YYYY').format('dddd') 
"Tuesday" 

如果你想在一週中的各種語言的日子,你甚至可以做到這一點。例如,德國:

moment('22/03/2016', 'DD/MM/YYYY').locale('de').format('dddd') 
"Dienstag" 

見解析指南和更多信息解析文檔: http://momentjs.com/guides/#/parsing/ http://momentjs.com/docs/#/parsing/

相關問題