set alarm with local time for fb messenger - node-red
var makeMsg = context.global.makeMsg;
var fbId = msg.payload.originalRequest.data.sender.id;
var alarmTime = msg.payload.result.parameters.time;
var _alarmTime = alarmTime;
if (alarmTime === '') {
alarmTime = new Date();
alarmTime = alarmTime.toString();
alarmTime = alarmTime.substr(16,5);
} else {
alarmTime = alarmTime.substr(0,5);
}
var date = new Date();
var _date = date;
date = date.toString();
var currentTime = date.substr(16,5);
var diffH = Math.abs(parseInt(alarmTime.substr(0,2)) - parseInt(currentTime.substr(0,2)));
var diffM = Math.abs(parseInt(alarmTime.substr(3,2)) - parseInt(currentTime.substr(3,2)));
var totalDiff = ((diffH * 60 + diffM) * 60) * 1000;
var time = _date.getTime();
time = time + totalDiff + 3000;
var offset = (1000 * 60 * 60 * 5) + (1000 * 60 * 30);
time = time - offset;
time = new Date(time);
var bAlarms = [];
bAlarms.push(time);
msg.dates = bAlarms;
sendMsg();
function sendMsg() {
var text = '';
if (_alarmTime === '') {
text = 'calling you right now!';
} else {
text = 'call scheduled at ' + _alarmTime.substr(0,5);
}
msg.payload = makeMsg.textMsg(fbId, text);
node.send(msg);
}