с 5.6
до 8
гугл продолжает показывать жалкие 9% производительности
но не сломаю ли сайт
$dateTime = new DateTime('2021-05-18T15:30:00.000-04:00');
var_dump($dateTime);
$dateTime->setTimezone(new DateTimeZone('Europe/Moscow'));
var_dump($dateTime);
// object(DateTime)#1 (3) {
// ["date"] => string(26) "2021-05-18 15:30:00.000000"
// ["timezone_type"] => int(1)
// ["timezone"] => string(6) "-04:00"
// }
//object(DateTime)#1 (3) {
// ["date"] => string(26) "2021-05-18 22:30:00.000000"
// ["timezone_type"] => int(3)
// ["timezone"] => string(13) "Europe/Moscow"
//}
$timestamp = strtotime('2021-05-18T15:30:00.000-04:00');
var_dump($timestamp); // int(1621366200)
date_default_timezone_set('Europe/Moscow');
$dateTime = date('c', $timestamp);
var_dump($dateTime); // string(25) "2021-05-18T22:30:00+03:00"
function getTimes(start, end, interval) {
const [ s, e ] = [ start, end ].map(n => moment(n, 'HH:mm'));
const result = [];
if (s > e) {
e.add(1, 'day');
}
for (; s <= e; s.add(interval, 'minutes')) {
result.push(s.format('HH:mm'));
}
return result;
}
function getTimes(start, end, interval) {
const [ s, e ] = [ start, end ].map(n => new Date(`2000-01-01 ${n}`));
const result = [];
if (s > e) {
e.setDate(e.getDate() + 1);
}
for (; s <= e; s.setMinutes(s.getMinutes() + interval)) {
result.push(s.toTimeString().split(':', 2).join(':'));
// или
result.push(s.toLocaleTimeString('ru', {
hour: '2-digit',
minute: '2-digit',
}));
}
return result;
}
const times = getTimes('10:00', '18:00', 30);
.