jquery很久以前与unix时代

时间:2010-09-20 23:56:37

标签: jquery django

我正在使用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>

谢谢!

3 个答案:

答案 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);
},

jQuery Time ago from a timestamp?

答案 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));

应该工作。