【问题标题】:ISO Date format shows RangeErrorISO 日期格式显示 RangeError
【发布时间】:2020-11-06 08:51:00
【问题描述】:

我必须将日期格式转换为 iso 格式。它工作正常,但直到日期 30。如果我使用 2019 年 8 月 31 日,它会显示范围错误:Date.toISOString 的时间值无效。为此使用日期选择器。每月 31 日显示此错误。

    function utcDate(element) {
    let val = element.val();
    let split = val.split(/\//);
    var t= split[0]++;
    return new Date([split[1], split[0], split[2]].join('/')).toISOString();
} 

【问题讨论】:

  • split[0] 可能是月份中的某一天。如果今天是 31 并且您的总和是 32 > 无效天?你可能需要 sum split[1]++ 吗?
  • 在不使用 split[0]++ 的情况下使用上述功能时,如果我将开始日期设为 2019 年 8 月 8 日,将结束日期设为 2019 年 8 月 31 日,则输出显示前一个日期2019 年 8 月 29 日,2019 年 8 月 30 日结束。怎么办?
  • 你能给我一个例子你传递的元素值吗?例如:2019 年 8 月 31 日?
  • 如上所示,我在表格中使用了 30/08/2019 和 31/08/2019 作为开始和结束日期
  • 你能告诉我上面的代码有什么问题吗?你的代码是如何工作的?

标签: jquery datepicker utc iso


【解决方案1】:

试试测试模式:

                function utcDate(element) {
                    let val = element.val();
                    let split = val.split(/\//);
                    var d = new Date();
                    d.setMonth(parseInt(split[1], 10) - 1);
                    d.setDate(parseInt(split[0], 10));
                    d.setFullYear(parseInt(split[2], 10));
                    return d.toISOString();
                }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-03
    • 2010-10-28
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    相关资源
    最近更新 更多