【问题标题】:JavaScript / jQuery: get numeric weekday value of date stringJavaScript / jQuery:获取日期字符串的数字工作日值
【发布时间】:2014-03-11 16:26:52
【问题描述】:

我有一个日期值始终格式为 YYYY-MM-DD 的字段。 如何获取此字段值的工作日值。

示例:如果字段中的日期是星期一,则结果应为 1,如果是星期二,则结果应为 2,依此类推。

我尝试了以下方法,但这会为我返回 NaN:

var n = new Date( $('#myFieldID').val() );
var w = n.getDay();

我正在使用 Moment.js 创建进入该字段的日期:

var dateNow = moment().format('YYYY-MM-DD');
$('#myFieldID').val(dateNow);

这有效,并将在 2014 年 2 月 13 日填写 2014-02-13。

非常感谢您提供的任何帮助,蒂姆

【问题讨论】:

  • $('#myFieldID').val() 的评估结果是什么?
  • @KyleMuir,OP 表示一个格式为 YYYY-MM-DD 的值。
  • 他说它应该采用的格式,但谁知道该字段中实际放入了什么,并且由于它被省略了,这使得问题变得比它需要的无限困难。
  • 例如:var n = new Date('2014-01-01'); n.getDay() n = 3 在任何控制台中,所以我的假设是输入不正确。
  • 你说得对。

标签: javascript jquery date weekday


【解决方案1】:

我发现 Moment.js 还内置了一个工作日功能,可以解决这个问题。 谢谢。

【讨论】:

    【解决方案2】:

    我使用了与您在 this JSFiddle 中使用的完全相同的语法。

    var n = new Date($('#date').val());
    var w = n.getDay();
    console.log(w);
    

    如果我们不知道“#myFieldID”是什么,我们无法回答问题,但您使用的语法是正确的。

    【讨论】:

    • 谢谢。我更新了我的帖子。我的猜测是我需要将日期用单引号或类似的东西括起来?
    • var dateNow = moment().format('YYYY-MM-DD'); $('#myFieldID').val(dateNow); 您缺少#myFieldID 的尾引号。
    • 谢谢,这只是网站上的复制/粘贴。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多