Add calculateRemainingMilliseconds() helper function
This commit is contained in:
parent
048ec28761
commit
50222d4dc6
|
@ -473,3 +473,15 @@ export const stringifyTime = timeObject => {
|
|||
*/
|
||||
export const abbreviateTime = timeStr =>
|
||||
timeStr.split(' ').filter(unitStr => unitStr.charAt(0) !== '0')[0];
|
||||
|
||||
/**
|
||||
* Calculates the milliseconds between now and a given date string.
|
||||
* The result cannot become negative.
|
||||
*
|
||||
* @param endDate date string that the time difference is calculated for
|
||||
* @return {number} number of milliseconds remaining until the given date
|
||||
*/
|
||||
export const calculateRemainingMilliseconds = endDate => {
|
||||
const remainingMilliseconds = new Date(endDate).getTime() - Date.now();
|
||||
return Math.max(remainingMilliseconds, 0);
|
||||
};
|
||||
|
|
|
@ -352,3 +352,21 @@ describe('prettyTime methods', () => {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('calculateRemainingMilliseconds', () => {
|
||||
beforeEach(() => {
|
||||
spyOn(Date, 'now').and.callFake(() => new Date('2063-04-04T00:42:00Z').getTime());
|
||||
});
|
||||
|
||||
it('calculates the remaining time for a given end date', () => {
|
||||
const milliseconds = datetimeUtility.calculateRemainingMilliseconds('2063-04-04T01:44:03Z');
|
||||
|
||||
expect(milliseconds).toBe(3723000);
|
||||
});
|
||||
|
||||
it('returns 0 if the end date has passed', () => {
|
||||
const milliseconds = datetimeUtility.calculateRemainingMilliseconds('2063-04-03T00:00:00Z');
|
||||
|
||||
expect(milliseconds).toBe(0);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue