繁体   English   中英

Vue.js 日期减一

[英]Vue.js date off by one

我在JSBin上的最基本形式的代码

我将日期存储为YYYY-MM-DD hh:mm:ss需要显示为MM/DD/YYYY并编辑为YYYY-MM-DD ,因为这就是 HTML 的日期输入所要求的。 一切似乎都有效,除了我第一次修改当天,反映的日期早了一天。 因此,随后的更改是一次性的。

初始状态:

初始状态

第一个变化:

第一次改变

任何后续更改:

任何后续更改

我提取了 utc 日期,然后能够使日期正常工作,而不会在一天内关闭。

类似于:

<input
          type="date"
          name="startDate"
          :value="startDate && startDate.toISOString().split('T')[0]"
          @input="startDate = getDateClean($event.target.valueAsDate)"
          autocomplete="off"
          class="form-control"
        />

method:{
  getDateClean(currDate: Date) {
  // need to convert to UTC to get working input filter
  console.log(currDate);
  let month: number | string = currDate.getUTCMonth() + 1;
  if (month < 10) month = "0" + month;
  let day: number | string = currDate.getUTCDate();
  if (day < 10) day = "0" + day;
  const dateStr =
    currDate.getUTCFullYear() + "-" + month + "-" + day + "T00:00:00";
  console.log(dateStr);
  const d = new Date(dateStr);
  console.log(d);
  return d;
  }
}

请参阅https://stackoverflow.com/a/63838211/2875452 中答案的运行示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM