我有这段代码:
var day = $("#date-filter").val();
此输入的值为:“22/03/2016”。
我需要工作日。
我试图以两种方式做到这一点,但它不起作用。
1)moment(day).day()
2)moment($("#date-filter").val()).day()
答案 0 :(得分: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开头。
答案 1 :(得分: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/