我如何获取 start/end 日期用户输入,并将其转换为 ISO 格式的美国太平洋时间?
How would I take a start/end dates user input, and convert it to US Pacific time, in ISO format?
我需要在一组特定情况下处理日期对象。
- 用户正在输入日期范围,from/to。
- 每个日期都需要转换
toISOString()
因为它在数据库中就是这样。
- 客户希望日期范围硬转换为美国太平洋时间。
因此,当用户选择 from/to 日期时,该应用会将他们选择的日期设为美国太平洋时区,然后使用 ISO 格式的日期搜索数据库。
我有这个 SE Post 可以让我进行时区转换,但采用的是非 iso 格式。任何推导 toISOString()
的尝试都会将对象直接调回设备时区。
我正在尝试 dayjs(),但它最终变成了一堆额外的步骤,只是为了让最终结果受到设备时区的干扰。
如何才能让上述一系列事件按必要的顺序展开?
这是你如何用 dayjs 做的
const dayjs = require("dayjs");
const utc = require("dayjs/plugin/utc");
const timezone = require("dayjs/plugin/timezone");
dayjs.extend(utc);
dayjs.extend(timezone);
let t = dayjs()
.tz("America/Los_Angeles")
.utc(true)
.toISOString();
console.log(t);
这是所有时区的列表https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
我个人住在欧洲,但是当我执行这个脚本时,它会以 ISO 格式向我显示洛杉矶的时间
我需要在一组特定情况下处理日期对象。
- 用户正在输入日期范围,from/to。
- 每个日期都需要转换
toISOString()
因为它在数据库中就是这样。 - 客户希望日期范围硬转换为美国太平洋时间。
因此,当用户选择 from/to 日期时,该应用会将他们选择的日期设为美国太平洋时区,然后使用 ISO 格式的日期搜索数据库。
我有这个 SE Post 可以让我进行时区转换,但采用的是非 iso 格式。任何推导 toISOString()
的尝试都会将对象直接调回设备时区。
我正在尝试 dayjs(),但它最终变成了一堆额外的步骤,只是为了让最终结果受到设备时区的干扰。
如何才能让上述一系列事件按必要的顺序展开?
这是你如何用 dayjs 做的
const dayjs = require("dayjs");
const utc = require("dayjs/plugin/utc");
const timezone = require("dayjs/plugin/timezone");
dayjs.extend(utc);
dayjs.extend(timezone);
let t = dayjs()
.tz("America/Los_Angeles")
.utc(true)
.toISOString();
console.log(t);
这是所有时区的列表https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
我个人住在欧洲,但是当我执行这个脚本时,它会以 ISO 格式向我显示洛杉矶的时间