gpt4 book ai didi

javascript - 使用本地日期设置和获取 HTMLInputElement.valueAsDate 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 06:21:06 25 4
gpt4 key购买 nike

valueAsDate 的功能似乎存在根本性缺陷:

var date1 = new Date();
date1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()); // input expects requires year, month, day

var input = document.createElement("input"); input.type = "date";

input.valueAsDate = date1;

var date2 = input.valueAsDate;

console.log(date1);
console.log(date2);

console.log(date1.getTime(), date2.getTime()); // EVEN THE UTC TIMESTAMP IS NOT EQUAL!!

我想设置一个本地日期,我想获取一个本地日期。如何在来回保持正确的日期类型(UTC 或本地)的同时始终实现这一点?

最佳答案

<input type="date"> 上显示的日期是 UTC 天数。如果你想把它们当作本地的日子,你需要调整 Date对象:

var date1 = new Date(); // now
var input = document.createElement("input"); input.type = "date";

input.valueAsDate = new Date(Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate()));

var midnightUtcDate = input.valueAsDate;
var date2 = new Date(midnightUtcDate.getUTCFullYear(), midnightUtcDate.getUTCMonth(), midnightUtcDate.getUTCDate());

console.log(date1, date1.toLocaleDateString());
console.log(date2, date2.toLocaleDateString());

关于javascript - 使用本地日期设置和获取 HTMLInputElement.valueAsDate 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53032953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com