citysys-flowserver/flow/test.js

120 lines
3.1 KiB
JavaScript

const getTimezoneOffset = (timeZone, date = new Date()) => {
const tz = date.toLocaleString("en", {timeZone, timeStyle: "long"}).split(" ").slice(-1)[0];
const dateString = date.toString();
const offset = Date.parse(`${dateString} UTC`) - Date.parse(`${dateString} ${tz}`);
// return UTC offset in millis
return offset;
}
let profile = {
"time_points": [
{
"start_time": "13:00",
"value": 0
},
{
"start_time": "16:00",
"value": 1
}
],
"astro_clock": true,
"dusk_astro_clock_offset": 0,
"dawn_astro_clock_offset": 0,
"dusk_lux_sensor": false,
"dawn_lux_sensor": false,
"dusk_lux_sensor_value": 5,
"dawn_lux_sensor_value": 5,
"dusk_lux_sensor_time_window": 30,
"dawn_lux_sensor_time_window": 30,
}
let now = new Date(); // Creates a Date Object using the clients current time
console.log(now, now.getTime());
//let [hours, minutes, seconds] = "18:19:02".split(':');
//d.setHours(+hours); // Set the hours, using implicit type coercion
//d.setMinutes(minutes); // You can pass Number or String. It doesn't really matter
//d.setSeconds(seconds);
let time_points = profile.time_points;
time_points.push( {"start_time": "1:00", "value": 1} );
time_points.sort(function (a, b) {
let [ahours, aminutes, aseconds] = a.start_time.split(':');
let [bhours, bminutes, bseconds] = b.start_time.split(':');
let ad = new Date();
ad.setHours( parseInt(ahours) );
ad.setMinutes( parseInt(aminutes) );
ad.setSeconds(0);
let bd = new Date();
bd.setHours( parseInt(bhours) );
bd.setMinutes( parseInt(bminutes) );
ad.setSeconds(0);
return ad.getTime() - bd.getTime();
});
console.log(time_points);
let value = time_points[ time_points.length - 1].value;
for(let i = 0; i < time_points.length; i++)
{
let [hours, minutes, seconds] = time_points[i].start_time.split(':');
let start_time = new Date();
start_time.setHours( parseInt(hours) );
start_time.setMinutes( parseInt(minutes) );
start_time.setSeconds(0);
if(now.getTime() > start_time.getTime())
{
value = time_points[i].value;
}
//console.log(start_time);
}
console.log(value);
const offset = getTimezoneOffset("Europe/Bratislava");
console.log(offset);
function removeTask(obj)
{
let keys = Object.keys(obj);
tasks = tasks.filter((task) => {
let counter = 0;
for(let i = 0; i < keys.length; i++)
{
let key = keys[i];
if(task.hasOwnProperty(key) && obj.hasOwnProperty(key))
{
if(task[key] == obj[key]) counter++;
}
}
if(counter == keys.length) return false;
return true;
});
}
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date);
newDate.setMinutes(date.getMinutes() - date.getTimezoneOffset());
return newDate;
}
let d = convertUTCDateToLocalDate(new Date("2022-04-26T06:56:54.000Z"));
console.log(d, d.getHours());