diff options
Diffstat (limited to 'js/dojo-1.7.2/dojox/dtl/utils')
| -rw-r--r-- | js/dojo-1.7.2/dojox/dtl/utils/date.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/js/dojo-1.7.2/dojox/dtl/utils/date.js b/js/dojo-1.7.2/dojox/dtl/utils/date.js new file mode 100644 index 0000000..1d7b3dd --- /dev/null +++ b/js/dojo-1.7.2/dojox/dtl/utils/date.js @@ -0,0 +1,80 @@ +//>>built +define("dojox/dtl/utils/date", [ + "dojo/_base/lang", + "dojox/date/php", + "../_base" +], function(lang,ddp,dd){ + /*===== + ddp = dojox.data.php; + dd = dojox.dtl; + =====*/ + lang.getObject("dojox.dtl.utils.date", true); + + dd.utils.date.DateFormat = ddp.DateFormat; + lang.extend(dd.utils.date.DateFormat, ddp.DateFormat.prototype, { + f: function(){ + // summary: + // Time, in 12-hour hours and minutes, with minutes left off if they're zero. + // description: + // Examples: '1', '1:30', '2:05', '2' + // Proprietary extension. + return (!this.date.getMinutes()) ? this.g() : this.g() + ":" + this.i(); + }, + N: function(){ + // summary: Month abbreviation in Associated Press style. Proprietary extension. + return dojox.dtl.utils.date._months_ap[this.date.getMonth()]; + }, + P: function(){ + // summary: + // Time, in 12-hour hours, minutes and 'a.m.'/'p.m.', with minutes left off + // if they're zero and the strings 'midnight' and 'noon' if appropriate. + // description: + // Examples: '1 a.m.', '1:30 p.m.', 'midnight', 'noon', '12:30 p.m.' + // Proprietary extension. + if(!this.date.getMinutes() && !this.date.getHours()){ + return 'midnight'; + } + if(!this.date.getMinutes() && this.date.getHours() == 12){ + return 'noon'; + } + return this.f() + " " + this.a(); + } + }); + + lang.mixin(dojox.dtl.utils.date, { + format: function(/*Date*/ date, /*String*/ format){ + var df = new dojox.dtl.utils.date.DateFormat(format); + return df.format(date); + }, + timesince: function(d, now){ + // summary: + // Takes two datetime objects and returns the time between then and now + // as a nicely formatted string, e.g "10 minutes" + // description: + // Adapted from http://blog.natbat.co.uk/archive/2003/Jun/14/time_since + if(!(d instanceof Date)){ + d = new Date(d.year, d.month, d.day); + } + if(!now){ + now = new Date(); + } + + var delta = Math.abs(now.getTime() - d.getTime()); + for(var i = 0, chunk; chunk = dojox.dtl.utils.date._chunks[i]; i++){ + var count = Math.floor(delta / chunk[0]); + if(count) break; + } + return count + " " + chunk[1](count); + }, + _chunks: [ + [60 * 60 * 24 * 365 * 1000, function(n){ return (n == 1) ? 'year' : 'years'; }], + [60 * 60 * 24 * 30 * 1000, function(n){ return (n == 1) ? 'month' : 'months'; }], + [60 * 60 * 24 * 7 * 1000, function(n){ return (n == 1) ? 'week' : 'weeks'; }], + [60 * 60 * 24 * 1000, function(n){ return (n == 1) ? 'day' : 'days'; }], + [60 * 60 * 1000, function(n){ return (n == 1) ? 'hour' : 'hours'; }], + [60 * 1000, function(n){ return (n == 1) ? 'minute' : 'minutes'; }] + ], + _months_ap: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."] + }); + return dojox.dtl.utils.date; +}); |
