我正在使用django并从unix时代输出日期。如何在unix时代之前使用jquery?
我看到这个例子: 2015年1月10日
<abbr class="timeago" title="2015-01-10T15:00:00Z">January 10, 2015</abbr>
但我可以这样做:
<abbr class="timeago" title="2015-01-10T15:00:00Z">{{UNIX_EPOCH_IN_SECONDS}}</abbr>
谢谢!
答案 0 :(得分:4)
您无需将unix时间戳转换为ISO。哈尔发布了一段修改jQuery timeago plugin的代码,对我有用。只需用第89行替换timeago的parse()函数:
parse: function(iso8601) {
if ((iso8601 - 0) == iso8601 && iso8601.length > 0) { // Checks if iso8601 is a unix timestamp
var s = new Date(iso8601);
if (isNaN(s.getTime())) { // Checks if iso8601 is formatted in milliseconds
var s = new Date(iso8601 * 1000); //if not, add milliseconds
}
return s;
}
var s = $.trim(iso8601);
s = s.replace(/-/,"/").replace(/-/,"/");
s = s.replace(/T/," ").replace(/Z/," UTC");
s = s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
return new Date(s);
},
答案 1 :(得分:2)
您可以使用unix时间戳初始化Date
对象,但Javascript的日期需要时间(以毫秒为单位),因此它只是:
var d = new Date(<?php echo date('U') ?>000);
变成了类似的东西:
var d = new Date(1285027311000);
它还会解析大多数标准的文本日期格式,必须像PHP的strtotime()那样,尽管你必须准确测试它是多么宽容。
答案 2 :(得分:2)
Date()构造函数可以采用自00/1:00 UTC 1/1/1970以来的毫秒数,timeago可以与Date对象一起使用。所以:
jQuery.timeago(new Date(unixSeconds * 1000));
应该工作。