mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-28 04:02:12 +00:00
94 lines
2.1 KiB
JavaScript
94 lines
2.1 KiB
JavaScript
/**
|
|
* MockDate
|
|
*
|
|
* By Bob Lauer (https://github.com/boblauer/MockDate
|
|
* MIT Licensed.
|
|
*/
|
|
|
|
(function(name, definition) {
|
|
if (typeof module !== 'undefined') module.exports = definition();
|
|
else if (typeof define === 'function' && typeof define.amd === 'object') define(definition);
|
|
else this[name] = definition();
|
|
}('MockDate', function() {
|
|
"use strict";
|
|
|
|
var _Date = Date
|
|
, _getTimezoneOffset = Date.prototype.getTimezoneOffset
|
|
, now = null
|
|
;
|
|
|
|
function MockDate(y, m, d, h, M, s, ms) {
|
|
var date;
|
|
|
|
switch (arguments.length) {
|
|
|
|
case 0:
|
|
if (now !== null) {
|
|
date = new _Date(now);
|
|
} else {
|
|
date = new _Date();
|
|
}
|
|
break;
|
|
|
|
case 1:
|
|
date = new _Date(y);
|
|
break;
|
|
|
|
default:
|
|
d = typeof d === 'undefined' ? 1 : d;
|
|
h = h || 0;
|
|
M = M || 0;
|
|
s = s || 0;
|
|
ms = ms || 0;
|
|
date = new _Date(y, m, d, h, M, s, ms);
|
|
break;
|
|
}
|
|
|
|
return date;
|
|
}
|
|
|
|
MockDate.UTC = _Date.UTC;
|
|
|
|
MockDate.now = function() {
|
|
return new MockDate().valueOf();
|
|
};
|
|
|
|
MockDate.parse = function(dateString) {
|
|
return _Date.parse(dateString);
|
|
};
|
|
|
|
MockDate.toString = function() {
|
|
return _Date.toString();
|
|
};
|
|
|
|
MockDate.prototype = _Date.prototype;
|
|
|
|
function set(date, timezoneOffset) {
|
|
var dateObj = new Date(date)
|
|
if (isNaN(dateObj.getTime())) {
|
|
throw new TypeError('mockdate: The time set is an invalid date: ' + date)
|
|
}
|
|
|
|
if (typeof timezoneOffset === 'number') {
|
|
MockDate.prototype.getTimezoneOffset = function() {
|
|
return timezoneOffset;
|
|
}
|
|
}
|
|
|
|
Date = MockDate;
|
|
|
|
now = dateObj.valueOf();
|
|
}
|
|
|
|
function reset() {
|
|
Date = _Date;
|
|
Date.prototype.getTimezoneOffset = _getTimezoneOffset
|
|
}
|
|
|
|
return {
|
|
set: set,
|
|
reset: reset
|
|
};
|
|
|
|
}));
|