我使用jQuery datepicker添加了一个日期选择器,并使用altFormat '@' --> 参见http://docs.jquery.com/UI/Datepicker/formatDate
// Function datepicker
$("#obsDate").datepicker({
altField: '#actualDate',
altFormat: '@', // Gives a timestamp dateformat
dateFormat: "dd-mm-yy",
showOn: "button",
buttonImage: $("#datePickerImg").val(),
buttonImageOnly: true,
});
当用户选择一个值时,Unix时间戳就被设置了。例如:1312840800000
这个时间戳是以毫秒为单位的,所以如果我要进行转换,需要除以1000。
但是,当我在C#中使用函数进行转换时:
private static DateTime ConvertFromUnixTimestamp(double timestamp)
{
var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return origin.AddSeconds(timestamp);
}
我总是得到比实际早一天的日期。
我做错了什么?
更新:当我使用内置的 JavaScript 函数 gettime() 时。
var ts = Math.round((new Date().getTime() / 1000));
我得到了正确的时间戳...
- 使用getTime()的示例结果如下: 30-08-2011 --> 1314628036
使用日期选择器的示例结果如下: 29-08-2011 --> 1314568800。
这也是使用日期选择器中的ticks(!)获得的。
new DateTime(1, 1, 1, 0, 0, timestamp)
是否能给出正确的日期? - Blazemonger