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

将我的javascript日期时间从PST转换为UTC,javascript,datetime,Javascript,Datetime,我在处理我的本地(PST)时区时会发疯,并且会打电话给UTC的Web服务 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("date

我在处理我的本地(PST)时区时会发疯,并且会打电话给UTC的Web服务

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)}T{0:df(HH:mm:ss)}'", s);  
var enddate = String.Format("datetime'{0:df(yyyy-MM-dd)}T{0: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);
我试着在d和b中添加25200000毫秒,但这会导致s作为无效日期返回(可能是因为它将它放在了未来?)

由于它使用的是PST(我的本地时区),所以我将这些参数传递到的Web服务不会返回所有数据,因为它缺少一个8小时的时间跨度,因为服务器处于UTC

我尝试了很多UTC方法,但问题是如何将其恢复到Web服务所需的格式。我希望得到更直接的指导,而不仅仅是Javascript UTC方法


这里有一些简单的东西我不知道,我很想得到帮助

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

<script type="text/javascript">

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

</script>

var d=UTC日期(2005年7月8日);
文件编写(d);

From:

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

<script type="text/javascript">

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

</script>

var d=UTC日期(2005年7月8日);
文件编写(d);

From:

如果将日期作为日期对象传递,则web服务应在反序列化时处理日期/时间转换。这至少是它在asp.net中使用web服务的方式


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

如果将日期作为日期对象传递,则web服务应在反序列化时处理日期/时间转换。这至少是它在asp.net中使用web服务的方式


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

结果表明,以毫秒为单位增加7小时是最简单的方法。i、 e:

// 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);

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

// 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);

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


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

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


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

您有更具体的说明吗?我需要获取当前日期,所以您是否建议使用“var d=date.UTC(foo.getYear(),foo.getMonth(),…)”之类的方法来获取当前日期参数并转换为UTC?JavaScript有许多UTC日期方法:您有更具体的说明吗?我需要获取当前日期,所以您是否建议使用“var d=date.UTC(foo.getYear(),foo.getMonth(),…)”之类的方法来获取当前日期参数并转换为UTC?JavaScript有许多UTC日期方法:日光节约时间如何?日光节约时间如何?