UNPKG

@pushrocks/smarttime

Version:

handle time in smart ways

81 lines 4.69 kB
import './smarttime.plugins.js'; /** * TimeStamp * smart timestamp */ export class TimeStamp { /** * returns new TimeStamp from milliseconds */ static fromMilliSeconds(milliSecondsArg) { return new TimeStamp(milliSecondsArg); } /** * returns new TimeStamp for now with change set * @param timeStampArg */ static fromTimeStamp(timeStampArg) { const localTimeStamp = new TimeStamp(); localTimeStamp.change = localTimeStamp.milliSeconds - timeStampArg.milliSeconds; return localTimeStamp; } constructor(creatorArg) { /** * if derived from another TimeStamp points out the change in milliseconds */ this.change = null; if (!creatorArg) { this.date = new Date(); } else if (typeof creatorArg === 'number') { this.date = new Date(creatorArg); } this.milliSeconds = this.date.getTime(); this.epochtime = Math.floor(this.milliSeconds / 1000); } /** * returns a boolean for wether the timestamp is older than another timestamp * @param TimeStampArg * @param tresholdTimeArg */ isOlderThanOtherTimeStamp(TimeStampArg, tresholdTimeArg = 0) { if (this.milliSeconds < TimeStampArg.milliSeconds - tresholdTimeArg) { return true; } else { return false; } } /** * Is the current instance older than the argument * @param TimeStampArg */ isOlderThan(TimeStampArg, tresholdTimeArg = 0) { if (this.milliSeconds + tresholdTimeArg < TimeStampArg.milliSeconds) { return true; } else { return false; } } /** * returns a boolean for wether the timestamp is younger than another timestamp * @param TimeStampArg * @param tresholdTimeArg */ isYoungerThanOtherTimeStamp(TimeStampArg, tresholdTimeArg = 0) { if (this.milliSeconds > TimeStampArg.milliSeconds + tresholdTimeArg) { return true; } else { return false; } } isYoungerThanMilliSeconds(millisecondArg) { const nowTimeStamp = new TimeStamp(); const compareEpochTime = nowTimeStamp.epochtime - millisecondArg; const compareTimeStamp = new TimeStamp(compareEpochTime); return this.isYoungerThanOtherTimeStamp(compareTimeStamp); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0aW1lLmNsYXNzZXMudGltZXN0YW1wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnR0aW1lLmNsYXNzZXMudGltZXN0YW1wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQXlCLHdCQUF3QixDQUFDO0FBRWxEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ3BCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLGVBQXVCO1FBQ3BELE9BQU8sSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBdUI7UUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN2QyxjQUFjLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUNoRixPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBdUJELFlBQVksVUFBbUI7UUFML0I7O1dBRUc7UUFDSSxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBRzNCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7U0FDeEI7YUFBTSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQXlCLENBQUMsWUFBdUIsRUFBRSxrQkFBMEIsQ0FBQztRQUNuRixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksR0FBRyxlQUFlLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsWUFBdUIsRUFBRSxrQkFBMEIsQ0FBQztRQUNyRSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxHQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMkJBQTJCLENBQUMsWUFBdUIsRUFBRSxrQkFBMEIsQ0FBQztRQUNyRixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksR0FBRyxlQUFlLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxjQUFzQjtRQUNyRCxNQUFNLFlBQVksR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGIn0=