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