A JavaScript Mock Date object that can be used to change when "now" is.
npm install mockdate --save-dev
MockDate has been tested in Node, IE9+, Chrome, Firefox, and Opera.
import MockDate from 'mockdate'MockDate.set(date)
date: Object
The Date to be returned when no parameters are passed to new Date(). Supports any object that has a .valueOf method that returns a value that can be passed to new Date().
date: String
The string representation of the date which is passed to the new Date() constructor. This creates the Date to be returned when no parameters are passed to new Date().
date: Number
The millisecond representation of the Date to be returned when no parameters are passed to new Date().
MockDate.reset();Will restore the original Date object back to the native implementation.
MockDate.set('2000-11-22');
new Date().toString() // "Tue Nov 21 2000 18:00:00 GMT-0600 (CST)"
MockDate.set('1/30/2000');
new Date().toString() // "Sun Jan 30 2000 00:00:00 GMT-0600 (CST)"
MockDate.set(new Date('2/20/2000'));
new Date().toString() // "Sun Feb 20 2000 00:00:00 GMT-0600 (CST)"
MockDate.set(moment('3/30/2000').toDate()); // using momentjs
new Date().toString() // "Thu Mar 30 2000 00:00:00 GMT-0600 (CST)"
MockDate.reset();
new Date().toString() // "Mon Mar 17 2014 18:08:44 GMT-0500 (CDT)"npm test