【问题标题】:Converting my javascript datetime to UTC from PST将我的 javascript 日期时间从 PST 转换为 UTC
【发布时间】: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)}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);

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

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

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

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

【问题讨论】:

    标签: javascript datetime


    【解决方案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);
        

        【讨论】:

        • 日光节约时间怎么样?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-21
        • 2016-01-13
        • 2013-12-07
        • 2011-08-29
        • 2012-01-16
        • 2021-09-05
        • 1970-01-01
        相关资源
        最近更新 更多