Я создаю форму для установки интервала публикации и хочу суммировать все представленные значения в секундах. Форма состоит из полей для определения секунд, минут, часов, дня и т. Д.
Я собираю представленные значения в строку, указывая атрибуты даты, такие как секунда, минута и т. Д.
Например:
$ second second
$ минутная минута
$ час час
Поэтому, если пользователь вводит 1 в поле ввода для определения интервала в day
и 30 minute
, тогда мой код преобразует его в строку 1 day
и 30 minute
.
Мои вопросы:
1- Как я могу конвертировать 1 day
и 30 minute
строку в секунды, чтобы их можно было суммировать в правильные секунды.
Я попытался использовать strtotime()
но он возвращает очень большое количество секунд и date()
но возвращает слишком малое число.
2- Есть ли простая функция, такая как strtotime()
и date()
которая может правильно преобразовывать строку во второе преобразование?
Вы можете использовать strtotime()
со вторым параметром, например:
strtotime('1 day 30 second', 0);
Это даст вам 86430
, то есть количество секунд в 1 день и 30 секунд.
(Если второй параметр опущен, текущая временная метка (т.е. time()
) используется для добавления того, что указано в строке, что приводит к большому числу.)
Попробуйте следующий код:
$day = 1; $hour = 1; $minute = 1; $second = 0; $second += (($day * 24 + $hour) * 60 + $minute) * 60;