javascript - 我如何获得本周的星期一?

标签 javascript html css

(function () {
    var date = new Date().toISOString().substring(0, 10),
        field = document.querySelector('#date');
    var day = new Date(date);
    var getMonday = day.getDay(),
        diff = date.getDate() - getMonday + (getMonday == 0 ? -6:1);
    field.value = new Date(date.setDate(diff));
    console.log(date);
})();

我正在尝试获取当前日期的星期一。

我一直收到关于它的错误,但不确定如何解决它

TypeError: date.getDate is not a function
    at index.html:394
    at index.html:398
(anonymous) @ index.html:394
(anonymous) @ index.html:398

所谓的重复帖子只询问如何获取日期。我的问题有类似的代码,但我收到问题中从 Unresolved 错误消息

最佳答案

您在第一行将日期转换为字符串: date = new Date().toISOString().substring(0, 10) 这就是导致错误的原因... date 不再是 Date 对象。

--- 编辑:解决方案 我建议您为以后用作 ISO 字符串的任何用途声明一个附加变量,或者仅在输出时进行转换: 为此,我建议将您的格式添加到 Date 对象的原型(prototype)中

Date.prototype.myFormat = function() { 
    return this.toISOString().substring(0, 10); 
}

像这样更新您的初始代码:

var date = new Date(), 
str_date=date.toISOString().substring(0, 10),
field = document.querySelector('#date'), 
day = new Date(date),
getMonday = day.getDay(),
diff = date.getDate() - getMonday + (getMonday == 0 ? -6:1);

console.log(date);
console.log(str_date);
console.log(new Date(date.setDate(diff)));
console.log(new Date(date.setDate(diff)).myFormat());

//Now you can update your field as needed with date or string value
field.value = new Date(date.setDate(diff));
field.value = new Date(date.setDate(diff)).myFormat();

如果你在更多地方需要它,让 getMonday 也成为一个函数......

快乐的编码, 科德鲁特

关于javascript - 我如何获得本周的星期一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42170311/

相关文章:

javascript - 关闭前验证 ngDialog openConfirm 中的表单

javascript - 如何在不从 html 传递的情况下获取 angularjs 脚本中的表单和输入字段的状态?

html - Bootstrap中div叠加跳转到另一行

javascript - jQuery 图像悬停颜色叠加

javascript - 单击时使用 jQuery 获取 HTML 内容

javascript - 如何将 Promise.all 与多个参数一起使用?

javascript - 如何将此 Object.values 除以总数?

javascript - jQuery 安全性,在浏览器中执行代码

javascript - 如何使用 Javascript 获取整页高度?

html 选择菜单选项跑出页面