Вход Регистрация
Файл: js/plugin.timeago.js
Строк: 167
<?php
/*
 * timeago: a jQuery plugin, version: 0.9.3 (2011-01-21)
 * @requires jQuery v1.2.3 or later
 *
 * Timeago is a jQuery plugin that makes it easy to support automatically
 * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
 *
 * For usage and examples, visit:
 * http://timeago.yarp.com/
 *
 * Licensed under the MIT:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Copyright (c) 2008-2011, Ryan McGeary (ryanonjavascript -[at]- mcgeary [*dot*] org)
 */
(function($) {
  $.
timeago = function(timestamp) {
    if (
timestamp instanceof Date) {
      return 
inWords(timestamp);
    } else if (
typeof timestamp === "string") {
      return 
inWords($.timeago.parse(timestamp));
    } else {
      return 
inWords($.timeago.datetime(timestamp));
    }
  };
  var 
$t = $.timeago;

  $.
extend($.timeago, {
    
settings: {
      
refreshMillis60000,
      
allowFuturefalse,
      
strings: {
        
prefixAgonull,
        
prefixFromNownull,
        
suffixAgo"ago",
        
suffixFromNow"from now",
        
seconds"less than a minute",
        
minute"about a minute",
        
minutes"%d minutes",
        
hour"about an hour",
        
hours"about %d hours",
        
day"a day",
        
days"%d days",
        
month"about a month",
        
months"%d months",
        
year"about a year",
        
years"%d years",
        
numbers: []
      }
    },
    
inWords: function(distanceMillis) {
      var 
$l this.settings.strings;
      var 
prefix $l.prefixAgo;
      var 
suffix $l.suffixAgo;
      if (
this.settings.allowFuture) {
        if (
distanceMillis 0) {
          
prefix $l.prefixFromNow;
          
suffix $l.suffixFromNow;
        }
        
distanceMillis Math.abs(distanceMillis);
      }

      var 
seconds distanceMillis 1000;
      var 
minutes seconds 60;
      var 
hours minutes 60;
      var 
days hours 24;
      var 
years days 365;

      function 
substitute(stringOrFunctionnumber) {
        var 
string = $.isFunction(stringOrFunction) ? stringOrFunction(numberdistanceMillis) : stringOrFunction;
        var 
value = ($l.numbers && $l.numbers[number]) || number;
        return 
string.replace(/%d/ivalue);
      }

      var 
words seconds 45 && substitute($l.secondsMath.round(seconds)) ||
        
seconds 90 && substitute($l.minute1) ||
        
minutes 45 && substitute($l.minutesMath.round(minutes)) ||
        
minutes 90 && substitute($l.hour1) ||
        
hours 24 && substitute($l.hoursMath.round(hours)) ||
        
hours 48 && substitute($l.day1) ||
        
days 30 && substitute($l.daysMath.floor(days)) ||
        
days 60 && substitute($l.month1) ||
        
days 365 && substitute($l.monthsMath.floor(days 30)) ||
        
years && substitute($l.year1) ||
        
substitute($l.yearsMath.floor(years));

      return $.
trim([prefixwordssuffix].join(" "));
    },
    
    
// updated by: Yehia Abed [D3VELOPER]
    
parse: function(iso8601) {
        if ((
iso8601 0) == iso8601 && iso8601.length 0) { // Checks if iso8601 is a unix timestamp
        
var = new Date(iso8601);
        if (
isNaN(s.getTime())) { // Checks if iso8601 is formatted in milliseconds
        
var = new Date(iso8601 1000); //if not, add milliseconds
        
}
        return 
s;
        }
        var 
= $.trim(iso8601);
        
s.replace(/-/,"/").replace(/-/,"/");
        
s.replace(/T/," ").replace(/Z/," UTC");
        
s.replace(/([+-]dd):?(dd)/," $1$2"); // -04:00 -> -0400
        
return new Date(s);
    },

    
datetime: function(elem) {
      
// jQuery's `is()` doesn't play well with HTML5 in IE
      
var isTime = $(elem).get(0).tagName.toLowerCase() === "time"// $(elem).is("time");
      
var iso8601 isTime ? $(elem).attr("datetime") : $(elem).attr("data-time");
      return 
$t.parse(iso8601);
    }
  });

  $.fn.
timeago = function() {
    var 
self this;
    
self.each(refresh);

    var 
$s $t.settings;
    if (
$s.refreshMillis 0) {
      
setInterval(function() { self.each(refresh); }, $s.refreshMillis);
    }
    return 
self;
  };

  function 
refresh() {
    var 
data prepareData(this);
    if (!
isNaN(data.datetime)) {
      $(
this).text(inWords(data.datetime));
    }
    return 
this;
  }

  function 
prepareData(element) {
    
element = $(element);
    if (!
element.data("timeago")) {
      
element.data("timeago", { datetime$t.datetime(element) });
      var 
text = $.trim(element.text());
      if (
text.length 0) {
        
element.attr("data-time"text);
      }
    }
    return 
element.data("timeago");
  }

  function 
inWords(date) {
    return 
$t.inWords(distance(date));
  }

  function 
distance(date) {
    return (new 
Date().getTime() - date.getTime());
  }

  
// fix for IE6 suckage
  
document.createElement("abbr");
  
document.createElement("time");
}(
jQuery));


// initialize all timestamps
jQuery(document).ready(function() {
    
jQuery("span[class*=timeago]").timeago();
});
?>
Онлайн: 1
Реклама