123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- 'use strict';
- var MONTHS = [
- 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
- ];
- // only set once.
- var TIMEZONE = ' ';
- var _hourOffset = parseInt(-(new Date().getTimezoneOffset()) / 60, 10);
- if (_hourOffset >= 0) {
- TIMEZONE += '+';
- } else {
- TIMEZONE += '-';
- }
- _hourOffset = Math.abs(_hourOffset);
- if (_hourOffset < 10) {
- _hourOffset = '0' + _hourOffset;
- }
- TIMEZONE += _hourOffset + '00';
- /**
- * Access log format date. format: `moment().format('DD/MMM/YYYY:HH:mm:ss ZZ')`
- *
- * @return {String}
- */
- exports.accessLogDate = function (d) {
- // 16/Apr/2013:16:40:09 +0800
- d = d || new Date();
- var date = d.getDate();
- if (date < 10) {
- date = '0' + date;
- }
- var hours = d.getHours();
- if (hours < 10) {
- hours = '0' + hours;
- }
- var mintues = d.getMinutes();
- if (mintues < 10) {
- mintues = '0' + mintues;
- }
- var seconds = d.getSeconds();
- if (seconds < 10) {
- seconds = '0' + seconds;
- }
- return date + '/' + MONTHS[d.getMonth()] + '/' + d.getFullYear() +
- ':' + hours + ':' + mintues + ':' + seconds + TIMEZONE;
- };
- /**
- * Normal log format date. format: `moment().format('YYYY-MM-DD HH:mm:ss.SSS')`
- *
- * @return {String}
- */
- exports.logDate = exports.YYYYMMDDHHmmssSSS = function (d, msSep) {
- if (typeof d === 'string') {
- // logDate(msSep)
- msSep = d;
- d = new Date();
- } else {
- // logDate(d, msSep)
- d = d || new Date();
- }
- var date = d.getDate();
- if (date < 10) {
- date = '0' + date;
- }
- var month = d.getMonth() + 1;
- if (month < 10) {
- month = '0' + month;
- }
- var hours = d.getHours();
- if (hours < 10) {
- hours = '0' + hours;
- }
- var mintues = d.getMinutes();
- if (mintues < 10) {
- mintues = '0' + mintues;
- }
- var seconds = d.getSeconds();
- if (seconds < 10) {
- seconds = '0' + seconds;
- }
- var milliseconds = d.getMilliseconds();
- if (milliseconds < 10) {
- milliseconds = '00' + milliseconds;
- } else if (milliseconds < 100) {
- milliseconds = '0' + milliseconds;
- }
- return d.getFullYear() + '-' + month + '-' + date + ' ' +
- hours + ':' + mintues + ':' + seconds + (msSep || '.') + milliseconds;
- };
- /**
- * `moment().format('YYYY-MM-DD HH:mm:ss')` format date string.
- *
- * @return {String}
- */
- exports.YYYYMMDDHHmmss = function (d, options) {
- d = d || new Date();
- if (!(d instanceof Date)) {
- d = new Date(d);
- }
- var dateSep = '-';
- var timeSep = ':';
- if (options) {
- if (options.dateSep) {
- dateSep = options.dateSep;
- }
- if (options.timeSep) {
- timeSep = options.timeSep;
- }
- }
- var date = d.getDate();
- if (date < 10) {
- date = '0' + date;
- }
- var month = d.getMonth() + 1;
- if (month < 10) {
- month = '0' + month;
- }
- var hours = d.getHours();
- if (hours < 10) {
- hours = '0' + hours;
- }
- var mintues = d.getMinutes();
- if (mintues < 10) {
- mintues = '0' + mintues;
- }
- var seconds = d.getSeconds();
- if (seconds < 10) {
- seconds = '0' + seconds;
- }
- return d.getFullYear() + dateSep + month + dateSep + date + ' ' +
- hours + timeSep + mintues + timeSep + seconds;
- };
- /**
- * `moment().format('YYYY-MM-DD')` format date string.
- *
- * @return {String}
- */
- exports.YYYYMMDD = function YYYYMMDD(d, sep) {
- if (typeof d === 'string') {
- // YYYYMMDD(sep)
- sep = d;
- d = new Date();
- } else {
- // YYYYMMDD(d, sep)
- d = d || new Date();
- if (typeof sep !== 'string') {
- sep = '-';
- }
- }
- var date = d.getDate();
- if (date < 10) {
- date = '0' + date;
- }
- var month = d.getMonth() + 1;
- if (month < 10) {
- month = '0' + month;
- }
- return d.getFullYear() + sep + month + sep + date;
- };
- /**
- * return datetime struct.
- *
- * @return {Object} date
- * - {Number} YYYYMMDD, 20130401
- * - {Number} H, 0, 1, 9, 12, 23
- */
- exports.datestruct = function (now) {
- now = now || new Date();
- return {
- YYYYMMDD: now.getFullYear() * 10000 + (now.getMonth() + 1) * 100 + now.getDate(),
- H: now.getHours()
- };
- };
- /**
- * Get Unix's timestamp in seconds.
- * @return {Number}
- */
- exports.timestamp = function timestamp(t) {
- if (t) {
- var v = t;
- if (typeof v === 'string') {
- v = Number(v);
- }
- if (String(t).length === 10) {
- v *= 1000;
- }
- return new Date(v);
- }
- return Math.round(Date.now() / 1000);
- };
|