Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if(!Date.prototype.format) {
- //Formats a JavaScript Date object to a string.
- //Following PHP's date() format --
- //http://php.net/manual/en/function.date.php
- Date.prototype.format = (function () {
- var pattern = {
- //Day of the month, 2 digits with leading zeros
- d: function () {
- var day = this.getDate();
- return day < 10 ? '0' + day : day;
- },
- //A textual representation of a day, three letters
- D: function () {
- return pattern['l'].call(this).slice(0,3);
- },
- //Day of the month without leading zeros
- j: function () {
- return this.getDate();
- },
- //A full textual representation of the day of the week
- l: function () {
- switch(this.getDay()) {
- case 0:
- return 'Sunday';
- case 1:
- return 'Monday';
- case 2:
- return 'Tuesday';
- case 3:
- return 'Wednesday';
- case 4:
- return 'Thursday';
- case 5:
- return 'Friday';
- case 6:
- return 'Saturday';
- }
- },
- //ISO-8601 numeric representation of the day of the week
- N: function () {
- return this.getDay() === 0 ? 7 : this.getDay();
- },
- //English ordinal suffix for the day of the month, 2 characters
- S: function () {
- if(this.getDate() > 3 && this.getDate() < 21) {
- return 'th';
- }
- switch(this.getDate().toString().slice(-1)) {
- case '1':
- return 'st';
- case '2':
- return 'nd';
- case '3':
- return 'rd';
- default:
- return 'th';
- }
- },
- //Numeric representation of the day of the week
- w: function () {
- return this.getDay();
- },
- //The day of the year (starting from 0)
- z: function () {
- return Math.floor(((this - new Date(this.getFullYear(), 0, 1)) / 86400000), 0);
- },
- //ISO-8601 week number of year, weeks starting on Monday
- W: function () {
- var start = new Date(this.getFullYear(), 0, 1);
- return Math.ceil((((this - start) / 86400000) + start.getDay() + 1) / 7);
- },
- //A full textual representation of a month, such as January or March
- F: function () {
- switch(this.getMonth()) {
- case 0:
- return 'January';
- case 1:
- return 'February';
- case 2:
- return 'March';
- case 3:
- return 'April';
- case 4:
- return 'May';
- case 5:
- return 'June';
- case 6:
- return 'July';
- case 7:
- return 'August';
- case 8:
- return 'September';
- case 9:
- return 'October';
- case 10:
- return 'November';
- case 11:
- return 'December';
- }
- },
- //Numeric representation of a month, with leading zeros
- m: function () {
- var month = this.getMonth()+1;
- return month < 10 ? '0' + month : month;
- },
- //A short textual representation of a month, three letters
- M: function () {
- return pattern['F'].call(this).slice(0,3);
- },
- //Numeric representation of a month, without leading zeros
- n: function () {
- return this.getMonth()+1;
- },
- //Number of days in the given month
- t: function () {
- return 32 - new Date(this.getFullYear(), this.getMonth(), 32).getDate();
- },
- //Whether it's a leap year
- L: function () {
- return new Date(this.getFullYear(), 1, 29).getDate() === 29 ? 1 : 0;
- },
- //ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead.
- O: function () {
- return null;
- },
- //A full numeric representation of a year, 4 digits
- Y: function () {
- return this.getFullYear();
- },
- //A two digit representation of a year
- y: function () {
- return this.getFullYear().toString().slice(-2);
- },
- //Lowercase Ante meridiem and Post meridiem
- a: function () {
- return this.getHours() < 12 ? 'am' : 'pm';
- },
- //Uppercase Ante meridiem and Post meridiem
- A: function () {
- return this.getHours() < 12 ? 'AM' : 'PM';
- },
- //Swatch Internet time
- B: function () {
- return null;
- },
- //12-hour format of an hour without leading zeros
- g: function () {
- var hours = this.getHours();
- return hours > 12 ? hours - 12 : hours;
- },
- //24-hour format of an hour without leading zeros
- G: function () {
- return this.getHours();
- },
- //12-hour format of an hour with leading zeros
- h: function () {
- var hours = pattern['g'].call(this);
- return hours < 10 ? '0' + hours : hours;
- },
- //24-hour format of an hour with leading zeros
- H: function () {
- var hours = pattern['G'].call(this);
- return hours < 10 ? '0' + hours : hours;
- },
- //Minutes with leading zeros
- i: function () {
- return this.getMinutes() < 10 ? '0' + this.getMinutes() : this.getMinutes();
- },
- //Seconds, with leading zeros
- s: function () {
- return this.getSeconds() < 10 ? '0' + this.getSeconds() : this.getSeconds();;
- },
- //Microseconds
- u: function () {
- return this.getMilliseconds();
- },
- //Timezone identifier
- e: function () {
- return null;
- },
- //Whether or not the date is in daylight saving time
- I: function () {
- return null;
- },
- //Difference to Greenwich time (GMT) in hours
- O: function () {
- var offset = this.getTimezoneOffset() / 60;
- return (offset < 0 ? '' : '+') + (offset < 10 ? '0' + offset : offset) + '00';
- },
- //Difference to Greenwich time (GMT) with colon between hours and minutes
- P: function () {
- var offset = pattern['O'].call(this);
- return offset.slice(0,3) + ':' + offset.slice(-2);
- },
- //Timezone abbreviation
- T: function () {
- return null;
- },
- //Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive
- Z: function () {
- return parseInt(pattern['O'].call(this)) * 60;
- },
- //ISO 8601 date
- c: function () {
- function pad(x) {
- return x < 10 ? '0'+ x : x;
- }
- return this.getUTCFullYear() + '-'
- + pad(this.getUTCMonth() + 1) + '-'
- + pad(this.getUTCDate()) + 'T'
- + pad(this.getUTCHours()) + ':'
- + pad(this.getUTCMinutes()) + ':'
- + pad(this.getUTCSeconds()) + 'Z';
- },
- //RFC 2822 formatted date
- r: function () {
- return this.toUTCString();
- },
- //Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
- U: function () {
- return this.getTime();
- }
- };
- return function(formatString) {
- var builder = '',
- character = '';
- for (var i = 0; i <= formatString.length; i++) {
- character = formatString.charAt(i);
- if(pattern.hasOwnProperty(character)) {
- builder += pattern[character].call(this).toString();
- }
- else {
- builder += character;
- }
- }
- return builder;
- }
- }());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement