mirror of
https://github.com/flynx/types.js.git
synced 2025-12-19 18:01:39 +00:00
added DD:HH:MM:SS:mmm period support for Date.str2ms(..)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
1bd0ec9101
commit
91c493cf5c
20
Date.js
20
Date.js
@ -19,14 +19,31 @@ object.Mixin('DateMixin', 'soft', {
|
||||
return (new this()).getTimeStamp(...args) },
|
||||
fromTimeStamp: function(ts){
|
||||
return (new this()).setTimeStamp(ts) },
|
||||
|
||||
// convert string time period to milliseconds...
|
||||
str2ms: function(str, dfl){
|
||||
dfl = dfl || 'ms'
|
||||
|
||||
// number -- dfl unit...
|
||||
if(typeof(str) == typeof(123)){
|
||||
var val = str
|
||||
str = dfl
|
||||
|
||||
// 00:00:00:00:000 format...
|
||||
} else if(str.includes(':')){
|
||||
var units = str.split(/\s*:\s*/g).reverse()
|
||||
// parse units...
|
||||
var ms = units[0].length == 3 ?
|
||||
parseFloat(units.shift() || 0)
|
||||
: 0
|
||||
var [s=0, m=0, h=0, d=0] = units
|
||||
// merge...
|
||||
return ((((parseFloat(d || 0)*24
|
||||
+ parseFloat(h || 0))*60
|
||||
+ parseFloat(m || 0))*60
|
||||
+ parseFloat(s || 0))*1000 + ms)
|
||||
|
||||
// 00set format...
|
||||
} else {
|
||||
var val = parseFloat(str)
|
||||
str = str.trim()
|
||||
@ -55,6 +72,9 @@ object.Mixin('DateMixin', 'soft', {
|
||||
return c ?
|
||||
val * c
|
||||
: NaN },
|
||||
|
||||
isPeriod: function(str){
|
||||
return !isNaN(this.str2ms(str)) },
|
||||
})
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user