use moment to detect timezones
This commit is contained in:
parent
ae8a79ea07
commit
6e514e1ccc
11 changed files with 74 additions and 142 deletions
32
services/tzupdate.js
Normal file
32
services/tzupdate.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
'use strict';
|
||||
|
||||
// This script re-calculates timezone offsets once a day
|
||||
|
||||
let moment = require('moment-timezone');
|
||||
let db = require('../lib/db');
|
||||
|
||||
function updateTimezoneOffsets(callback) {
|
||||
db.getConnection((err, connection) => {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
let values = [];
|
||||
moment.tz.names().forEach(tz => {
|
||||
let time = moment();
|
||||
values.push('(' + connection.escape(tz.toLowerCase().trim()) + ',' + connection.escape(time.tz(tz).utcOffset()) + ')');
|
||||
});
|
||||
|
||||
let query = 'INSERT INTO tzoffset (`tz`, `offset`) VALUES ' + values.join(', ') + ' ON DUPLICATE KEY UPDATE `offset` = VALUES(`offset`)';
|
||||
|
||||
connection.query(query, values, (err, result) => {
|
||||
connection.release();
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
return callback(null, result);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
updateTimezoneOffsets(console.log);
|
Loading…
Add table
Add a link
Reference in a new issue