首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery日期选择器unix时间戳

jQuery日期选择器unix时间戳
EN

Stack Overflow用户
提问于 2011-08-29 21:42:36
回答 4查看 28.6K关注 0票数 20

我使用jQuery日期选择器添加日期选择器并使用altFormat '@‘-->请参阅http://docs.jquery.com/UI/Datepicker/formatDate

代码语言:javascript
复制
 // Function datepicker
        $("#obsDate").datepicker({
            altField: '#actualDate',
            altFormat: '@',        // Gives a timestamp dateformat
            dateFormat: "dd-mm-yy",
            showOn: "button",
            buttonImage: $("#datePickerImg").val(),
            buttonImageOnly: true,
        });

当用户选择一个值时,将设置unix时间戳。喜欢: 1312840800000

这是以毫秒为单位的,所以i id do /1000

但是当我使用C#中的函数转换时间戳时

代码语言:javascript
复制
private static DateTime ConvertFromUnixTimestamp(double timestamp)
        {
            var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return origin.AddSeconds(timestamp);
        }

我总是早起一天..

我哪里做错了?

更新:当我使用javascript gettime()的内置函数时

代码语言:javascript
复制
var ts = Math.round((new Date().getTime() / 1000));

我得到了正确的时间戳。

  • Example with getTime() I get: 30-08-2011 --> 1314628036

使用datepicker的示例: 29-08-2011 --> 1314568800。

勾号(!)也是如此。在日期选择器中。

EN

回答 4

Stack Overflow用户

发布于 2012-10-24 20:42:46

这显然是一个时区问题。

getTime()

此函数返回从'epoch‘开始的毫秒数,这意味着从本地计算机上看到的是Unix timestamp * 1000。参见If javascript “(new Date()).getTime()” is run from 2 different Timezones

datepicker({altFormat: '@'})

从我在jQuery库中看到的,datepicker内部使用了formatDate函数,该函数将时区考虑在内(我从这里开始:jQuery.datepicker.formatDate and timezone offset...)

所以,在我的电脑上,我得到了2个小时的差异。我想不出一个简单的方法来解决这个问题,但您可以尝试以下方法:datetimepicker getDate to return Date / Time in UTC format

票数 4
EN

Stack Overflow用户

发布于 2011-08-29 21:56:40

很可能是.NET不知道它是什么时区。你必须定义这一点。

票数 0
EN

Stack Overflow用户

发布于 2013-09-30 22:41:52

对于您的代码,您必须执行以下操作:

代码语言:javascript
复制
    private static DateTime ConvertFromUnixTimestamp(double timestamp)
    {
        var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
        return origin.AddSeconds(timestamp - origin.getTime());
    }

这是因为在大多数时区中,1月1日对应于大于0或1的unixtime值。因此,更准确地说,您必须设置(而不是添加) Datetime对象的时间戳(如果您有设置器的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7230954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档