-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.objs
40 lines (32 loc) · 1.16 KB
/
test.objs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function resolveDate(dateText -> String) {
dateText = dateText.toLowerCase();
let today = new Date();
// -----------
// | FORMAT: day, hh:mm
// -----------
let dateRelational = new RegExp(/(сегодня|вчера), (\d{1,2}):(\d{1,2})/g);
let dateRelationalResult = dateRelational.exec(dateText);
if(dateRelationalResult) {
let day = today.getDate();
if(dateRelationalResult[1] === 'вчера') {
day--;
}
return { year: today.getFullYear(), month: today.getMonth() + 1, day: day };
}
// -----------
// | FORMAT: mm month, hh:mm
// -----------
let dateFull = new RegExp(/(\d{1,2}) (sep|nov), (\d{1,2}):(\d{1,2})/g);
let dateFullResult = dateFull.exec(dateText);
if(dateFullResult) {
let day = dateFullResult[1];
let monthText = dateFullResult[2];
let hour = dateFullResult[3];
let minute = dateFullResult[4];
return { year: today.getFullYear(), month: monthText, day: day, hour: hour, minute: minute };
}
// Unknown format
return null;
}
print(resolveDate('сегодня, 10:20'));
print(resolveDate('5 sep, 10:20'));