我如何获取 start/end 日期用户输入,并将其转换为 ISO 格式的美国太平洋时间?

How would I take a start/end dates user input, and convert it to US Pacific time, in ISO format?

我需要在一组特定情况下处理日期对象。

  1. 用户正在输入日期范围,from/to。
  2. 每个日期都需要转换 toISOString() 因为它在数据库中就是这样。
  3. 客户希望日期范围硬转换为美国太平洋时间。

因此,当用户选择 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 格式向我显示洛杉矶的时间