jaune-util
Version:
utils for jaune system
110 lines (97 loc) • 2.96 kB
text/coffeescript
###*
* Source code for Date extensions.
* Alvaro Juste
###
"use strict"
UnitMult =
"century" : 3153600000000,
"decade" : 315360000000,
"year" : 31536000000,
"quarter" : 7776000000,
"month" : 2592000000,
"day" : 86400000,
"hour" : 3600000,
"minute" : 60000,
"second" : 1000,
"millisecond" : 1
###*
* Adds seconds to date.
* {Number} seconds Seconds to add.
* {Date} New date
###
Date::addSeconds = (seconds) -> new Date this.getTime() + 1000 * seconds
###*
* Adds minutes to date.
* {Number} minutes Minutes to add.
* {Date} New date
###
Date::addMinutes = (minutes) -> new Date this.getTime() + 60000 * minutes
###*
* Adds hours to date.
* {Number} hours Hours to add.
* {Date} New date
###
Date::addHours = (hours) -> new Date this.getTime() + 3600000 * hours
###*
* Adds days to date.
* {Number} days Days to add.
* {Date} New date
###
Date::addDays = (days) -> new Date this.getTime() + 86400000 * days
###*
* Calculates the difference in seconds between two dates.
* {Date} date The other date
* {Number} Difference
###
Date::differenceInSeconds = (date) ->
diff = (this.getTime() - date.getTime()) / 1000
parseInt((if diff < 0 then 0 else diff), 10).toString 10
###*
* Calculates the difference in hours between two dates.
* {Date} date The other date
* {Number} Difference
###
Date::differenceInHours = (date) ->
diff = (this.getTime() - date.getTime()) / 3600000
parseInt((if diff < 0 then 0 else diff), 10).toString 10
###*
* Removes time component from a date.
* {Date} New date
###
Date::removeTime = ->
new Date this.getFullYear(), this.getMonth(), this.getDate()
###*
* Tries to get locale date string for a particular locale.
* {Date} locale The locale
* {String} Representation of date
###
Date::tryToLocaleDateString = (locale) ->
try
this.toLocaleDateString locale
catch
this.toLocaleString()
###*
* Gets standard date format used in the application.
* {String} Representation of date
###
Date::toStandardDate = ->
[, + 1, ].join '-'
###*
* Parses standard representation to date.
* {String} input The input string
* {Date} Date
###
Date.parseStandard = (input) ->
try
[hours, minutes, seconds] = input.split '-'
new Date parseInt(hours, 10), parseInt(minutes, 10) - 1,
parseInt(seconds, 10)
catch
new Date(-1)
###*
* Get time of milliseconds from enum
* {String} val Value containing value and quantity
* {Number} The number of milliseconds.
###
Date.getTimeFromEnum = (val) ->
parseInt(val, 10) * UnitMult[val.replace(/[0-9]/g, '')]