date-fns
Advanced tools
Comparing version 0.16.0 to 0.17.0
{ | ||
"name": "date-fns", | ||
"version": "0.16.0", | ||
"version": "0.17.0", | ||
"homepage": "https://github.com/kossnocorp/date-fns", | ||
"authors": [ | ||
"Sasha Koss <kossnocorp@gmail.com>" | ||
], | ||
"authors": ["Sasha Koss <kossnocorp@gmail.com>"], | ||
"description": "Date helpers", | ||
"main": "dist/date_fns.js", | ||
"license": "MIT", | ||
"ignore": [ | ||
"src", | ||
"node_modules" | ||
] | ||
"ignore": ["src", "node_modules"] | ||
} |
# Changelog | ||
## v0.17.0 (29 Sep 2015) | ||
* Additions: | ||
- `differenceInDays` | ||
- `getTimeSinceMidnight` | ||
* Improvements: | ||
- `setISOWeek` now keeps time from original date | ||
- Reuse `getDaysInMonth` inside of `addMonths` | ||
- Complete UMD package (for Bower) | ||
* Bug fixes: | ||
- Fix a lot of bugs appearing when date is modifying into other time zone | ||
(e.g., when adding months and original date is in DST but new date is not) | ||
- Prevent instances of Date to lose milliseconds value when passed to | ||
`parse` in IE10 | ||
## v0.16.0 (1 Sep 2015) | ||
@@ -4,0 +19,0 @@ |
@@ -6,3 +6,3 @@ var path = require('path') | ||
entry: { | ||
'date_fns': './src/date_fns.js' | ||
'date_fns': './index.js' | ||
}, | ||
@@ -9,0 +9,0 @@ output: process.env.NODE_ENV == 'test' ? {path: '/'} : { |
{ | ||
"name": "date-fns", | ||
"version": "0.16.0", | ||
"version": "0.17.0", | ||
"author": "Sasha Koss <kossnocorp@gmail.com>", | ||
@@ -12,4 +12,7 @@ "description": "Date helpers", | ||
"devDependencies": { | ||
"babel": "^5.8.23", | ||
"babel-eslint": "^4.1.3", | ||
"eslint": "1.2.1", | ||
"eslint-config-toptal": "0.1.0", | ||
"js-beautify": "^1.5.10", | ||
"karma": "^0.13.9", | ||
@@ -27,4 +30,8 @@ "karma-chai-sinon": "^0.1.3", | ||
"lint": "eslint .", | ||
"test-tz": "env TEST_TZ=true ./scripts/tz_test.sh" | ||
"test-single-run": "./scripts/test_single_run.sh", | ||
"test-tz": "env TEST_TZ=true ./scripts/test_tz.sh", | ||
"test-tz-extended": "env TEST_TZ=true ./scripts/test_tz_extended.sh", | ||
"generate-index": "babel-node ./scripts/generate_index", | ||
"sync-versions": "babel-node ./scripts/sync_versions" | ||
} | ||
} |
@@ -50,2 +50,3 @@ # date-fns | ||
* [`subMilliseconds`](./src/sub_milliseconds.js) - subtracts milliseconds from passed date. | ||
* [`getTimeSinceMidnight`](./src/get_time_since_midnight.js) - returns time since midnight in milliseconds. | ||
@@ -98,2 +99,3 @@ ### Seconds helpers | ||
* [`eachDay`](./src/each_day.js) - returns array of dates within specified range. | ||
* [`differenceInDays`](./src/difference_in_days.js) - returns number of days between dates. | ||
@@ -100,0 +102,0 @@ ### Week helpers |
@@ -24,8 +24,3 @@ var setISOWeek = require('../set_iso_week') | ||
}) | ||
it('sets hours and minutes to the start of the day', function() { | ||
var result = setISOWeek(new Date(2015, 0, 1, 20, 0), 1) | ||
expect(result).to.be.eql(new Date(2015, 0, 1, 0, 0, 0)) | ||
}) | ||
}) | ||
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
@@ -11,9 +12,5 @@ /** | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
date.setDate(date.getDate() + amount) | ||
/** | ||
* add additional 5 hours to get next day, | ||
* because of possible troubles with daylight savings dates | ||
*/ | ||
date = new Date(date.setTime(date.getTime() + 5 * 60 * 60 * 1000)) | ||
date = new Date(date.setHours(0, 0, 0, 0)) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -20,0 +17,0 @@ } |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
var getDaysInMonth = require('./get_days_in_month') | ||
@@ -11,7 +13,8 @@ /** | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
var desiredMonth = date.getMonth() + amount | ||
var daysInDesiredMonth = new Date(Date.UTC(date.getFullYear(), desiredMonth + 1, 0)).getUTCDate() | ||
var daysInMonth = getDaysInMonth(new Date(date.getFullYear(), desiredMonth, 1)) | ||
date.setDate(Math.min(daysInDesiredMonth, date.getDate())) | ||
date.setMonth(desiredMonth) | ||
date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate())) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -18,0 +21,0 @@ } |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
@@ -11,3 +12,5 @@ /** | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
date.setFullYear(date.getFullYear() + amount) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -14,0 +17,0 @@ } |
@@ -1,3 +0,2 @@ | ||
var startOfDay = require('./start_of_day') | ||
var startOfYear = require('./start_of_year') | ||
var getDayOfYear = require('./get_day_of_year') | ||
var parse = require('./parse') | ||
@@ -47,5 +46,3 @@ | ||
'DDD': function() { | ||
var diffWithStartOfYear | ||
= startOfDay(this).getTime() - startOfYear(this).getTime() | ||
return Math.floor(diffWithStartOfYear / NUMBER_OF_MS_IN_DAY) + 1 | ||
return getDayOfYear(this) | ||
}, | ||
@@ -52,0 +49,0 @@ 'DDDD': function() { |
var parse = require('./parse') | ||
var startOfYear = require('./start_of_year') | ||
var differenceInDays = require('./difference_in_days') | ||
var MILLISECONDS_IN_DAY = 86400000 | ||
/** | ||
@@ -13,4 +12,4 @@ * Returns day of year of passed date. | ||
var date = parse(dirtyDate) | ||
var diff = date.valueOf() - startOfYear(date).valueOf() | ||
var dayOfYear = Math.floor(diff / MILLISECONDS_IN_DAY) + 1 | ||
var diff = differenceInDays(date, startOfYear(date)) | ||
var dayOfYear = diff + 1 | ||
return dayOfYear | ||
@@ -17,0 +16,0 @@ } |
var parse = require('./parse') | ||
var startOfDay = require('./start_of_day') | ||
var startOfISOYear = require('./start_of_iso_year') | ||
@@ -20,3 +21,3 @@ | ||
var date = parse(dirtyDate) | ||
var diff = date.getTime() - startOfISOYear(date).getTime() | ||
var diff = startOfDay(date).getTime() - startOfISOYear(date).getTime() | ||
return Math.floor(diff / MILLISECONDS_IN_WEEK) + 1 | ||
@@ -23,0 +24,0 @@ } |
@@ -15,3 +15,3 @@ var startOfISOYear = require('./start_of_iso_year') | ||
var diff = nextYear.valueOf() - thisYear.valueOf() | ||
return diff / MILLISECONDS_IN_WEEK | ||
return Math.round(diff / MILLISECONDS_IN_WEEK) | ||
} | ||
@@ -18,0 +18,0 @@ |
@@ -36,3 +36,6 @@ var MILLISECONDS_IN_HOUR = 3600000 | ||
var parse = function(dateStr) { | ||
if (typeof dateStr !== 'string') { | ||
if (dateStr instanceof Date) { | ||
// Prevent dates to lose milliseconds when passed to new Date() in IE10 | ||
return new Date(dateStr.getTime()) | ||
} else if (typeof dateStr !== 'string') { | ||
return new Date(dateStr) | ||
@@ -46,13 +49,18 @@ } | ||
if (date) { | ||
var time = 0 | ||
var offset | ||
if (dateStrings.time) { | ||
var time = parseTime(dateStrings.time) | ||
date.setMilliseconds(date.getMilliseconds() + time) | ||
time = parseTime(dateStrings.time) | ||
} | ||
if (dateStrings.timezone) { | ||
var offset = parseTimezone(dateStrings.timezone) | ||
date.setMinutes(date.getMinutes() - date.getTimezoneOffset() - offset) | ||
offset = parseTimezone(dateStrings.timezone) | ||
} else { | ||
// get offset accurate to hour in timezones that change offset | ||
offset = new Date(date + time).getTimezoneOffset() | ||
offset = new Date(date + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset() | ||
} | ||
return date | ||
return new Date(date + time + offset * MILLISECONDS_IN_MINUTE) | ||
} else { | ||
@@ -95,3 +103,3 @@ return new Date(dateStr) | ||
var year = parseInt(token[1], 10) | ||
return new Date(year, 0, 1) | ||
return Date.UTC(year, 0, 1) | ||
@@ -102,3 +110,3 @@ // YYYY-MM | ||
var month = parseInt(token[2], 10) - 1 | ||
return new Date(year, month, 1) | ||
return Date.UTC(year, month, 1) | ||
@@ -109,3 +117,3 @@ // YYYY-DDD or YYYYDDD | ||
var dayOfYear = parseInt(token[2], 10) | ||
return new Date(year, 0, dayOfYear) | ||
return Date.UTC(year, 0, dayOfYear) | ||
@@ -117,3 +125,3 @@ // YYYY-MM-DD or YYYYMMDD | ||
var day = parseInt(token[3], 10) | ||
return new Date(year, month, day) | ||
return Date.UTC(year, month, day) | ||
@@ -180,3 +188,3 @@ // YYYY-Www or YYYYWww | ||
var absoluteOffset = parseInt(token[2], 10) * 60 | ||
offset = (token[1] == '+') ? absoluteOffset : -absoluteOffset | ||
offset = (token[1] == '+') ? - absoluteOffset : absoluteOffset | ||
@@ -186,3 +194,3 @@ // ±hh:mm or ±hhmm | ||
var absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10) | ||
offset = (token[1] == '+') ? absoluteOffset : -absoluteOffset | ||
offset = (token[1] == '+') ? - absoluteOffset : absoluteOffset | ||
} | ||
@@ -196,6 +204,6 @@ | ||
day = day || 0 | ||
var date = new Date(isoYear, 0, 4) | ||
var diff = week * 7 + day + 1 - date.getDay() | ||
date.setDate(date.getDate() + diff) | ||
return date | ||
var date = new Date(Date.UTC(isoYear, 0, 4)) | ||
var diff = week * 7 + day + 1 - date.getUTCDay() | ||
date.setUTCDate(date.getUTCDate() + diff) | ||
return date.getTime() | ||
} | ||
@@ -202,0 +210,0 @@ |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
@@ -11,3 +12,5 @@ /** | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
date.setDate(dayOfMonth) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -14,0 +17,0 @@ } |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
@@ -11,4 +12,6 @@ /** | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
date.setMonth(0) | ||
date.setDate(dayOfYear) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -15,0 +18,0 @@ } |
var parse = require('./parse') | ||
var getISOWeek = require('./get_iso_week') | ||
var startOfDay = require('./start_of_day') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
var MILLISECONDS_IN_WEEK = 604800000 | ||
/** | ||
@@ -18,5 +16,7 @@ * Sets ISO week to given date, saving weekday number. | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
var diff = getISOWeek(date) - isoWeek | ||
date.setTime(date.getTime() - diff * MILLISECONDS_IN_WEEK) | ||
return startOfDay(date) | ||
date.setDate(date.getDate() - diff * 7) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
} | ||
@@ -23,0 +23,0 @@ |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
var startOfISOYear = require('./start_of_iso_year') | ||
var differenceInDays = require('./difference_in_days') | ||
var MILLISECONDS_IN_DAY = 86400000 | ||
/** | ||
@@ -16,5 +20,9 @@ * Sets ISO week-numbering year to given date, | ||
var date = parse(dirtyDate) | ||
var startOfThisYear = startOfISOYear(date) | ||
var diff = date.getTime() - startOfThisYear.getTime() | ||
date.setTime(startOfISOYear(new Date(isoYear, 0, 4)).getTime() + diff) | ||
var time = getTimeSinceMidnight(date) | ||
var diff = differenceInDays(date, startOfISOYear(date)) | ||
date = startOfISOYear(new Date(isoYear, 0, 4)) | ||
date.setDate(date.getDate() + diff) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -21,0 +29,0 @@ } |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
var getDaysInMonth = require('./get_days_in_month') | ||
@@ -12,2 +13,3 @@ | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
var year = date.getFullYear() | ||
@@ -17,2 +19,3 @@ var day = date.getDate() | ||
date.setMonth(monthIndex, Math.min(day, daysInMonth)) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -19,0 +22,0 @@ } |
var parse = require('./parse') | ||
var getTimeSinceMidnight = require('./get_time_since_midnight') | ||
@@ -11,3 +12,5 @@ /** | ||
var date = parse(dirtyDate) | ||
var time = getTimeSinceMidnight(date) | ||
date.setFullYear(fullYear) | ||
date.setHours(0, 0, 0, time) | ||
return date | ||
@@ -14,0 +17,0 @@ } |
Sorry, the diff of this file is not supported yet
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
178373
206
4519
156
12
5