@AndryG

Как в DateTime::modify() обнулить секунды?

Как нормально обнулить секунды в DateTime?

Придумал два варианта. Оба с запашком. Третий вариант, по аналогии с датой, не работает.

<?php
html::textPlainHeader();

$dt = new DateTime();
print_r((clone $dt)->setTimestamp(intdiv($dt->getTimestamp(), 60) * 60));

$dt = new DateTime();
print_r($dt->modify('-'.$dt->format('s').' sec')->modify('-'.$dt->format('u').' usec'));

$dt = new DateTime();
print_r($dt->modify('first second of this minute')); // по аналогии с 'first day of this month'
/*
Warning: DateTime::modify(): Failed to parse time string (first second of this minute) at position 13 (o):
    The timezone could not be found in the database in /var/proj/bk/www/2.php on line 14

Call Stack:
    0.0960    1588064   1. {main}() /var/proj/bk/www/2.php:0
    0.1020    1882280   2. DateTime->modify($modify = 'first second of this minute') /var/proj/bk/www/2.php:14
 */


DateTime Object
(
    [date] => 2024-02-02 14:22:00.000000
    [timezone_type] => 3
    [timezone] => Etc/GMT-3
)
DateTime Object
(
    [date] => 2024-02-02 14:22:00.000000
    [timezone_type] => 3
    [timezone] => Etc/GMT-3
)

Warning: DateTime::modify(): Failed to parse time string (first second of this minute) at position 13 (o): The timezone could not be found in the database in /var/proj/bk/www/2.php on line 19

Call Stack:
    0.0996    1587472   1. {main}() /var/proj/bk/www/2.php:0
    0.1018    1881688   2. DateTime->modify($modify = 'first second of this minute') /var/proj/bk/www/2.php:19

phpinfo()
Default timezone Etc/GMT-3
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
$dt = new DateTime();
print_r($dt->settime((int)$dt->format("H"), (int)$dt->format("i"), 0));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 17:31
150000 руб./за проект
27 апр. 2024, в 16:39
1000 руб./в час
27 апр. 2024, в 16:38
30000 руб./за проект