将我的 javascript 日期时间从 PST 转换为 UTC

Posted

技术标签:

【中文标题】将我的 javascript 日期时间从 PST 转换为 UTC【英文标题】:Converting my javascript datetime to UTC from PST 【发布时间】:2011-03-26 23:00:42 【问题描述】:

处理我的本地 (PST) 时区并调用 UTC 格式的网络服务时,我会发疯。

webservice 使用“2011-02-09T12:00:00”格式的开始和结束日期,当前代码使用 starttime=30 天前,endtime=now。

代码如下:

var s = new Date(); 
var e = new Date(); 

s.setTime(d.getTime() - 30 * 24 * 60 * 60 * 1000);

var startdate = String.Format("datetime'0:df(yyyy-MM-dd)T0:df(HH:mm:ss)'", s);  
var enddate = String.Format("datetime'0:df(yyyy-MM-dd)T0:df(HH:mm:ss)'", e);

var url = String.Format("http://foo.com/webservice.svc/data?start=1&end=2&$format=json", startdate, enddate);
var obj = GetJsonObjectFromServer(url);

我尝试将 25,200,000 毫秒添加到 d 和 b,但这会导致 s 作为无效日期返回(可能是因为它可能会将其放在未来?)。

由于它使用 PST,我的本地时区,因此我将这些参数传递到的 Web 服务没有返回所有数据,因为它缺少 8 小时跨度,因为服务器是 UTC。

我已经尝试了一堆 UTC 方法,但问题是将其恢复为我需要的 web 服务格式。我将不胜感激更直接的指导,而不是仅仅指向 javascript UTC 方法。

我在这里缺少一些简单的东西,希望得到帮助!

【问题讨论】:

【参考方案1】:

JavaScript 有一个 UTC 日期方法,只需使用它。

<script type="text/javascript">

var d=Date.UTC(2005,7,8);
document.write(d);

</script>

发件人:http://www.w3schools.com/jsref/jsref_utc.asp

【讨论】:

您有更具体的说明吗?我需要获取当前日期,那么您是否提出类似“var d=Date.UTC(foo.getYear(), foo.getMonth(), ...)” 的内容来获取当前日期参数并转换为 UTC? JavaScript 有许多 UTC 日期方法:w3schools.com/jsref/jsref_obj_date.asp【参考方案2】:

如果您将日期作为 Date 对象传递,则 Web 服务应处理反序列化时的日期/时间转换。至少,这就是它与 asp.net 中的 Web 服务一起工作的方式。

不过要小心,因为从 SQL Server 返回的日期没有针对时区进行编码,并且必须在序列化之前设置时区,以便自动转换工作到浏览器。

【讨论】:

【参考方案3】:

我遇到了类似的问题,希望相同的描述对你有所帮助。 (不确定这是您问题的根本原因)。

表达式“30 * 24 * 60 * 60 * 1000”实际上计算为一个整数,并且很多时候会导致溢出。将其转换为长表达式为我解决了这个问题。换句话说,将“L”添加到上述常数之一。 “30 * 24 * 60 * 60 * 1000L”。

【讨论】:

【参考方案4】:

事实证明,以毫秒为单位增加 7 小时是最简单的方法。即:

// get start date to be 30 days ago
var foo = (30 * 24 * 60 * 60 * 1000);
s.setTime(s.getTime() - foo + 25200000);
e.setTime(e.getTime() + 25200000);

【讨论】:

日光节约时间怎么样?

以上是关于将我的 javascript 日期时间从 PST 转换为 UTC的主要内容,如果未能解决你的问题,请参考以下文章

将UTC时间转换为PST以获得夏令时?

使用 Snowflake 将时间 PST/PDT 转换为时间戳

将 PST 中的日期与时间转换为 UTC 格式

是否有根据日期转换为 PST 或 PDT 的 SQL 函数?

html Miva - Toolbelt:日期时间格式化PST

如何将我的时区设置为太平洋标准时间? https://cran.cnr.berkeley.edu/