From ba482f10bed1a4e34cf1941bb5728d0a029822a4 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Wed, 12 Nov 2014 08:43:23 +0000 Subject: Have past, future and recent return random dates Functions `past` and `future` only returned dates EXACTLY N YEARS before or after the reference date. Function `recent` only returned dates EXACTLY N DAYS before the reference date. For example, `faker.date.past(1)` would return either *Nov 12, 2014*, or *Nov 12, 2013*, but nothing in-between. Also, now you can call those functions without parameter, and N will take the default value of `1`. --- lib/date.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/date.js b/lib/date.js index 01d505eb..afe9fdc9 100644 --- a/lib/date.js +++ b/lib/date.js @@ -4,9 +4,13 @@ var date = { past: function (years, refDate) { var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); + var range = { + min: 1000, + max: (years || 1) * 365 * 24 * 3600 * 1000 + }; var past = date.getTime(); - past -= faker.random.number(years) * 365 * 24 * 3600 * 1000; // some time from now to N years ago, in milliseconds + past -= faker.random.number(range); // some time from now to N years ago, in milliseconds date.setTime(past); return date; @@ -14,8 +18,13 @@ var date = { future: function (years, refDate) { var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); + var range = { + min: 1000, + max: (years || 1) * 365 * 24 * 3600 * 1000 + }; + var future = date.getTime(); - future += faker.random.number(years) * 365 * 3600 * 1000 + 1000; // some time from now to N years later, in milliseconds + future += faker.random.number(range); // some time from now to N years later, in milliseconds date.setTime(future); return date; @@ -32,8 +41,13 @@ var date = { recent: function (days) { var date = new Date(); + var range = { + min: 1000, + max: (days || 1) * 24 * 3600 * 1000 + }; + var future = date.getTime(); - future -= faker.random.number(days) * 24 * 60 * 60 * 1000; // some time from now to N days ago, in milliseconds + future -= faker.random.number(range); // some time from now to N days ago, in milliseconds date.setTime(future); return date; -- cgit v1.2.3