get-moment-stamp
Version:
The getMomentStamp() function returns number of days since 01/01/1970 independent from the current time zone
57 lines (47 loc) • 2.33 kB
text/typescript
/*export const toLondonDate_obsolete = (date = new Date()): Date => {
return new Date(date.getTime() + date.getTimezoneOffset() * 60000);
};*/
export const toLondonDate = (date = new Date()): Date => {
const londonTimeZone = 'Europe/London';
return new Date(date.toLocaleString('en-US', { timeZone: londonTimeZone }));
};
const GENESIS_STAMP: Date = toLondonDate(new Date(0));
const DIMENSION_DELTA: number = 1000 * 60 * 60 * 24;
export const getMomentStamp = (date: Date = new Date()): number => {
const currentStamp: Date = toLondonDate(date);
const differenceMs: number = Math.abs(currentStamp.getTime() - GENESIS_STAMP.getTime());
return Math.floor(differenceMs / DIMENSION_DELTA);
};
export const getTimeStamp = (date: Date = new Date()): number => {
const hour: number = date.getHours();
const minute: number = date.getMinutes();
return hour * 60 + minute;
};
export const isCurrentTime = (timeStamp: number, delta: number = 15): boolean => {
const currentStamp: number = getTimeStamp();
const min: number = currentStamp - delta;
const max: number = currentStamp + delta;
return timeStamp >= min && timeStamp <= max;
};
export const isCurrentDate = (date: Date, stamp: number = getMomentStamp()): boolean => {
return getMomentStamp(date) === stamp;
};
export const fromMomentStamp = (momentStamp: number): Date => {
const millisecondsSinceGenesis: number = momentStamp * DIMENSION_DELTA;
const londonDate: Date = new Date(GENESIS_STAMP.getTime() + millisecondsSinceGenesis);
return new Date(londonDate.getTime() - londonDate.getTimezoneOffset() * 60000);
};
export const fromTimeStamp = (timeStamp: number, baseDate: Date = new Date()): Date => {
const hours: number = Math.floor(timeStamp / 60);
const minutes: number = timeStamp % 60;
const resultDate: Date = new Date(baseDate);
resultDate.setHours(hours, minutes, 0, 0);
return resultDate;
};
export const fromTimeStampWithMoment = (timeStamp: number, momentStamp = getMomentStamp()): Date => {
const baseDate: Date = fromMomentStamp(momentStamp);
const hours: number = Math.floor(timeStamp / 60);
const minutes: number = timeStamp % 60;
baseDate.setHours(hours, minutes, 0, 0);
return baseDate;
};