с 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);.
create table genres (
id int primary key auto_increment,
name varchar(255)
);
create table films (
id int primary key auto_increment,
name varchar(255)
);
create table film_genres (
film_id int,
genre_id int
);
public function reviews(): HasManyThrough
{
return $this->hasManyThrough(
Review::class,
Comment::class,
'commentable_id',
'reviewable_id'
);
}
public function getCommentsCountAttribute(): int
{
return $this
->reviews
->where('commentable_type', Review::class)
->count();
}