Mercurial > bugzilla-dashboard
changeset 14:1ece61eda826
Renamed pretty-date.js to date-utils.js.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 08 Mar 2010 22:48:06 -0800 |
parents | 1c1e538d7df7 |
children | 306db29669c7 |
files | date-utils.js index.html pretty-date.js |
diffstat | 3 files changed, 76 insertions(+), 76 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/date-utils.js Mon Mar 08 22:48:06 2010 -0800 @@ -0,0 +1,75 @@ +// Taken from MDC @ Core_JavaScript_1.5_Reference/Objects/Date. +function dateToISO8601(d) { + function pad(n) { return n < 10 ? '0' + n : n; } + + return (d.getUTCFullYear() + '-' + + pad(d.getUTCMonth() + 1) + '-' + + pad(d.getUTCDate()) + 'T' + + pad(d.getUTCHours()) + ':' + + pad(d.getUTCMinutes()) + ':' + + pad(d.getUTCSeconds()) + 'Z'); +} + +// Taken from http://delete.me.uk/2005/03/iso8601.html +function dateFromISO8601(string) { + var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" + + "(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" + + "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?"; + var d = string.match(new RegExp(regexp)); + + var offset = 0; + var date = new Date(d[1], 0, 1); + + if (d[3]) { date.setMonth(d[3] - 1); } + if (d[5]) { date.setDate(d[5]); } + if (d[7]) { date.setHours(d[7]); } + if (d[8]) { date.setMinutes(d[8]); } + if (d[10]) { date.setSeconds(d[10]); } + if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); } + if (d[14]) { + offset = (Number(d[16]) * 60) + Number(d[17]); + offset *= ((d[15] == '-') ? 1 : -1); + } + + offset -= date.getTimezoneOffset(); + var time = (Number(date) + (offset * 60 * 1000)); + date.setTime(Number(time)); + return date; +} + +/* + * JavaScript Pretty Date + * Copyright (c) 2008 John Resig (jquery.com) + * Licensed under the MIT license. + */ + +// Takes an ISO time and returns a string representing how +// long ago the date represents. +function prettyDate(time){ + var date = dateFromISO8601(time), + diff = (((new Date()).getTime() - date.getTime()) / 1000), + day_diff = Math.floor(diff / 86400); + + if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 ) + return; + + return day_diff == 0 && ( + diff < 60 && "just now" || + diff < 120 && "1 minute ago" || + diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" || + diff < 7200 && "1 hour ago" || + diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") || + day_diff == 1 && "Yesterday" || + day_diff < 7 && day_diff + " days ago" || + day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago"; +} + +// If jQuery is included in the page, adds a jQuery plugin to handle it as well +if ( typeof jQuery != "undefined" ) + jQuery.fn.prettyDate = function(){ + return this.each(function(){ + var date = prettyDate(this.title); + if ( date ) + jQuery(this).text( date ); + }); + };
--- a/index.html Mon Mar 08 22:47:15 2010 -0800 +++ b/index.html Mon Mar 08 22:48:06 2010 -0800 @@ -41,7 +41,7 @@ </div> </body> <script src="jquery.js"></script> -<script src="pretty-date.js"></script> +<script src="date-utils.js"></script> <script src="bugzilla.js"></script> <script src="dashboard.js"></script> </html>
--- a/pretty-date.js Mon Mar 08 22:47:15 2010 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -// Taken from MDC @ Core_JavaScript_1.5_Reference/Objects/Date. -function dateToISO8601(d) { - function pad(n) { return n < 10 ? '0' + n : n; } - - return (d.getUTCFullYear() + '-' + - pad(d.getUTCMonth() + 1) + '-' + - pad(d.getUTCDate()) + 'T' + - pad(d.getUTCHours()) + ':' + - pad(d.getUTCMinutes()) + ':' + - pad(d.getUTCSeconds()) + 'Z'); -} - -// Taken from http://delete.me.uk/2005/03/iso8601.html -function dateFromISO8601(string) { - var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" + - "(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" + - "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?"; - var d = string.match(new RegExp(regexp)); - - var offset = 0; - var date = new Date(d[1], 0, 1); - - if (d[3]) { date.setMonth(d[3] - 1); } - if (d[5]) { date.setDate(d[5]); } - if (d[7]) { date.setHours(d[7]); } - if (d[8]) { date.setMinutes(d[8]); } - if (d[10]) { date.setSeconds(d[10]); } - if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); } - if (d[14]) { - offset = (Number(d[16]) * 60) + Number(d[17]); - offset *= ((d[15] == '-') ? 1 : -1); - } - - offset -= date.getTimezoneOffset(); - var time = (Number(date) + (offset * 60 * 1000)); - date.setTime(Number(time)); - return date; -} - -/* - * JavaScript Pretty Date - * Copyright (c) 2008 John Resig (jquery.com) - * Licensed under the MIT license. - */ - -// Takes an ISO time and returns a string representing how -// long ago the date represents. -function prettyDate(time){ - var date = dateFromISO8601(time), - diff = (((new Date()).getTime() - date.getTime()) / 1000), - day_diff = Math.floor(diff / 86400); - - if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 ) - return; - - return day_diff == 0 && ( - diff < 60 && "just now" || - diff < 120 && "1 minute ago" || - diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" || - diff < 7200 && "1 hour ago" || - diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") || - day_diff == 1 && "Yesterday" || - day_diff < 7 && day_diff + " days ago" || - day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago"; -} - -// If jQuery is included in the page, adds a jQuery plugin to handle it as well -if ( typeof jQuery != "undefined" ) - jQuery.fn.prettyDate = function(){ - return this.each(function(){ - var date = prettyDate(this.title); - if ( date ) - jQuery(this).text( date ); - }); - };