2016-03-22 3 views
1

У меня есть этот код:Неделя день и момент JS

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

Значение этого входа является: "22/03/2016".

Мне нужна неделя день.

Я попытался сделать это двумя способами, но он не работает.

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/

Смежные вопросы