gpt4 book ai didi

javascript - 防止浏览器中的日期转换?

转载 作者:行者123 更新时间:2023-11-30 19:20:07 24 4
gpt4 key购买 nike

我从输入字段 (dd/mm/yyyy HH:MM:ss) 中获取日期范围,我希望它与收到的完全一样,而不让浏览器将其转换为本地时区。我该怎么做?

我已经尝试使用函数将日期转换为不同的可读格式,但浏览器仍在更改日期。

<input type='datetime-local' class="form-control" step="1" id="startRange" />
<input type='datetime-local' class="form-control" step="1" id="endRange" />

let datePickStart = new Date(document.getElementById("startRange").value);
let datePickEnd = new Date(document.getElementById("endRange").value);
console.log(datePickStart);
console.log(datePickEnd);


let startRangeDate = dateConvert(datePickStart);
let endRangeDate = dateConvert(datePickEnd);
console.log(startRangeDate);
console.log(endRangeDate);

function appendLeadingZeroes(n) {
if (n <= 9) {
return "0" + n;
}
return n
}

function dateConvert(dateToConvert) {

let dateString = dateToConvert.getFullYear() + "-" + appendLeadingZeroes(dateToConvert.getMonth() + 1) + "-" + appendLeadingZeroes(dateToConvert.getDate());
let timeString = appendLeadingZeroes(dateToConvert.getHours()) + ":" + appendLeadingZeroes(dateToConvert.getMinutes()) + ":" + appendLeadingZeroes(dateToConvert.getSeconds());
// Prevent conversion of date in the browser?
let dateFiltered = dateString + "T" + timeString;
return dateFiltered;
}

我希望从输入中收到的日期保持完全相同,而不会被浏览器更改为本地时区。这是一个 JSFiddle I did:

最佳答案

这类任务总是出现在前端开发中。出于各种原因,使用流行且维护良好的库来处理日期和时间是个好主意,例如:

  • 支持国际化
  • 支持各种日期时间格式
  • 支持使用日期时间进行计算(例如,确定日期时间是否在未来)

这些库也经过了大型社区的良好测试和试用。当您开发自己的代码时,可能会出现许多错误。我们使用 Moment.js .

关于javascript - 防止浏览器中的日期转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559408/

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