将 Javascript 日期对象转换为 PST 时区

新手上路,请多包涵

我需要从日历中选择一个未来的日期,假设我选择的日期是 10/14/2014 ,现在我想要的是将日期和时间发送到服务器,这样在服务器端它总是到达早上 6 点PST 时区时间和日期格式应为 UTC。

我正在做的是

targetDate = new Date($("#calendar").val()); targetDate = targetDate.toUTCString(); targetDate = targetDate.addHours(14);

我的理解是 PST 时区是 -8:00,所以我在 UTC 时间上增加了 14 小时,这样时间就变成了 6:00am PST

我面临的问题是它不允许我添加 14 小时,因为对象已经转换为字符串。

addHours 是我必须在给定时间内添加小时数的自定义函数。

如果我写

targetDate = new Date($("#calendar").val()); targetDate = targetDate.addHours(14); targetDate = targetDate.toUTCString();

那么它工作得很好,但在这种情况下,问题是当请求来自不同时区时,时间总是不同的。

任何帮助表示赞赏。

原文由 Ankush 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 598
2 个回答

建议你看看 DateJS http://code.google.com/p/datejs/http://www.datejs.com/ 。为您处理 PDT。

这是您的替代方案:

使用:Date.UTC(年、月、日、时、分、秒、毫秒)

示例:太平洋标准时间 2013 年 1 月 1 日早上 6 点

var date = new Date(Date.UTC(2013, 0, 1, 14, 0, 0))
console.log(date.toUTCString());

打印:“星期二,2013 年 1 月 1 日 14:00:00 GMT”

原文由 closure 发布,翻译遵循 CC BY-SA 4.0 许可协议

这对我有用:

 var myDate = new Date(1633071599000)
var pstDate = myDate.toLocaleString("en-US", {
  timeZone: "America/Los_Angeles"
})
console.log(pstDate)

哪个输出 "9/30/2021, 11:59:59 PM"

原文由 Tim Winfred 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题