-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
executable file
·32 lines (30 loc) · 970 Bytes
/
index.js
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
const {timezones} = require('libphonenumber-geo-carrier');
const {parsePhoneNumberFromString} = require('libphonenumber-js');
const {getLocalInfo} = require('phone-number-to-timezone');
module.exports = {
phoneNumberTimezone: async phoneNumber => {
let usTimeZone;
try {
usTimeZone = getLocalInfo(phoneNumber, {zone_display: 'name'})
.time.zone.split('/')
.slice(-1)[0];
}
catch (_) {}
try {
return usTimeZone === 'EST' || usTimeZone === 'EDT' ?
'America/New_York' :
usTimeZone === 'CST' || usTimeZone === 'CDT' ?
'America/Chicago' :
usTimeZone === 'MST' || usTimeZone === 'MDT' ?
'America/Denver' :
usTimeZone === 'PST' || usTimeZone === 'PDT' ?
'America/Los_Angeles' :
usTimeZone === 'AKST' || usTimeZone === 'AKDT' ?
'America/Anchorage' :
usTimeZone === 'HAST' || usTimeZone === 'HADT' ?
'Pacific/Honolulu' :
(await timezones(parsePhoneNumberFromString(phoneNumber)))[0];
}
catch (_) {}
}
};