now
This commit is contained in:
parent
84804245dd
commit
7c38dae658
44
src/now.js
Normal file
44
src/now.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
// Реализовать метод `now`:
|
||||
// - now() — вернет текущий timestamp
|
||||
// - now('+min'); — `сейчас + 1 минута`
|
||||
// - now('-3.5h'); — или `сейчас - 3.5 часа`
|
||||
//
|
||||
// Поддерживаемые форматы:
|
||||
// `ms`, `s`, `sec`, `m`, `min`, `h`, `hours` & etc.
|
||||
|
||||
const typeToMultDict = {
|
||||
'ms': 1,
|
||||
's': 1000,
|
||||
'sec': 1000,
|
||||
'm': 1000 * 60,
|
||||
'min': 1000 * 60,
|
||||
'h': 1000 * 60 * 60,
|
||||
'hours': 1000 * 60 * 60,
|
||||
'etc': 1 // if you need more - extend this dict =)
|
||||
}
|
||||
|
||||
function typeToMult(type) {
|
||||
let mult = typeToMultDict[type];
|
||||
if (!mult) {
|
||||
mult = 1;
|
||||
}
|
||||
return mult;
|
||||
}
|
||||
|
||||
function now(v) {
|
||||
let amount = 0;
|
||||
let mult = 1;
|
||||
if (v) {
|
||||
v = v.trim();
|
||||
amount = parseFloat(v)
|
||||
let len = amount.toString().length;
|
||||
if (amount >= 0) {
|
||||
len++;
|
||||
}
|
||||
const type = v.slice(len).trim();
|
||||
mult = typeToMult(type);
|
||||
}
|
||||
return Date.now() + amount * mult;
|
||||
}
|
||||
|
||||
console.log(now('+30min')); // Date.now() + 30 * 60 * 1000
|
Loading…
Reference in New Issue
Block a user