mockdate-with-global

A JavaScript mock Date object that can be used to change when "now" is. With globally accessible original date

Usage no npm install needed!

<script type="module">
  import mockdateWithGlobal from 'https://cdn.skypack.dev/mockdate-with-global';
</script>

README

MockDate

A JavaScript Mock Date object that can be used to change when "now" is.

Build Status

Installation

npm install mockdate

Environment Support

MockDate has been tested in Node, IE9+, Chrome, Firefox, and Opera.

Usage

// CommonJS
var MockDate = require('mockdate');
// AMD
require(['MockDate'], function(MockDate) { ... });
// Script Tag
var MockDate = window.MockDate;

API

MockDate.set(date, [timezoneOffset])

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 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().

__timezoneOffset

timezoneOffset: Number

The value that should be returned by new Date().getTimezoneOffset()

MockDate.reset();

Will restore the original Date object back to the native implementation.

Example

MockDate.set('1/1/2000');

new Date().toString() // "Sat Jan 01 2000 00:00:00 GMT-0600 (CST)"

MockDate.set('1/1/2000', 120);

new Date().getTimezoneOffset() // 120

MockDate.set(new Date('2/2/2000'));

new Date().toString() // "Wed Feb 02 2000 00:00:00 GMT-0600 (CST)"

MockDate.set(moment('3/3/2000')); // using momentjs

new Date().toString() // "Fri Mar 03 2000 00:00:00 GMT-0600 (CST)"

MockDate.reset();

new Date().toString() // "Mon Mar 17 2014 18:08:44 GMT-0500 (CDT)"
new Date().getTimezoneOffset() // 360

Test

npm test