/* _________________________________________________________________________________________________ pz.modifyDatetime version 0.02 _________________________________________________________________________________________________ */ jQuery.fn.modifyDatetime = function(showDate, showTime, i18n) { return this.each( function() { var _this = jQuery(this); if(!_this.hasClass("pz-modifyDatetime-complete")){ var _datetime = _this.text() || ''; var _datetimeUpdated = ''; var _showDate = (showDate==undefined) ? true : showDate; var _showTime = (showTime==undefined) ? true : showTime; var _i18n = (i18n==undefined) ? 'de' : i18n; var _separator = ' - '; /* calculate locale time */ if(_datetime != '') { var _currentdate = new Date(); // _datetime = Date.parse(_datetime) - _(currentdate.getTimezoneOffset()*60); _datetime = Date.parse(_datetime) ; } /* format _datetime (utc) to _datetimeUpdated (whatever) */ _datetimeUpdated = '' _datetimeUpdated += _showDate ? dateFormat(_datetime, _i18n + "mediumDate") : ''; _datetimeUpdated += (_showDate && _showTime) ? _separator : ''; _datetimeUpdated += _showTime ? dateFormat(_datetime, _i18n + "shortTime") : ''; //--reset for layout : ) //_datetimeUpdated = _datetime; /* include _datetimeUpdated */ _this.text(_datetimeUpdated); /* modify visibility */ //_this.css("display","inline"); // not needed _this.show(); /* complete */ _this.addClass("pz-modifyDatetime-complete"); } } ) }; /* * Date Format 1.2.2 * (c) 2007-2008 Steven Levithan * MIT license * Includes enhancements by Scott Trenda and Kris Kowal * * Accepts a date, a mask, or a date and a mask. * Returns a formatted version of the given date. * The date defaults to the current date/time. * The mask defaults to dateFormat.masks.default. */ var dateFormat = function () { var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, timezoneClip = /[^-+\dA-Z]/g, pad = function (val, len) { val = String(val); len = len || 2; while (val.length < len) val = "0" + val; return val; }; // Regexes and supporting functions are cached through closure return function (date, mask, utc) { var dF = dateFormat; // You can't provide utc if you skip other args (use the "UTC:" mask prefix) if (arguments.length == 1 && (typeof date == "string" || date instanceof String) && !/\d/.test(date)) { mask = date; date = undefined; } // Passing date through Date applies Date.parse, if necessary date = date ? new Date(date) : new Date(); if (isNaN(date)) throw new SyntaxError("invalid date"); mask = String(dF.masks[mask] || mask || dF.masks["default"]); // Allow setting the utc argument via the mask if (mask.slice(0, 4) == "UTC:") { mask = mask.slice(4); utc = true; } var _ = utc ? "getUTC" : "get", d = date[_ + "Date"](), D = date[_ + "Day"](), m = date[_ + "Month"](), y = date[_ + "FullYear"](), H = date[_ + "Hours"](), M = date[_ + "Minutes"](), s = date[_ + "Seconds"](), L = date[_ + "Milliseconds"](), o = utc ? 0 : date.getTimezoneOffset(), flags = { d: d, mmm: dF.i18n.enmonthNames[m], mmmm: dF.i18n.demonthNames[m], yyyy: y, h: H % 12 || 0, H: H, MM: pad(M), t: "h", tt: ((H < 12)) ? "am" : "pm", T: "Uhr", TT: ((H < 12)) ? "AM" : "PM" }; return mask.replace(token, function ($0) { return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); }); }; }(); // Some common format strings dateFormat.masks = { "default": "mmm d, yyyy - h:MM tt", enmediumDate: "mmm d, yyyy", demediumDate: "d. mmmm yyyy", enshortTime: "h:MM tt", deshortTime: "H:MM T" }; // Internationalization strings dateFormat.i18n = { enmonthNames: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], demonthNames: [ "Jan", "Feb", "M" + unescape("%E4") + "rz", "April", "Mai", "Juni", "Juli", "Aug", "Sept", "Okt", "Nov", "Dez", "Januar", "Februar", "M" + unescape("%E4") + "rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" ] }; // For convenience... Date.prototype.format = function (mask, utc) { return dateFormat(this, mask, utc); };