Возможен ли перевод даты типа 930 или 1030 в unix формат в php?

165
09 августа 2018, 13:40

Я новичок в php. Сейчас делаю один скрипт, работающий с временем. У меня есть массив времени, который я релизовал как 930,1030,1230 и.т.д. С этим массивом просиходят различные действия с использованием функций и по итогу мне нужно вернуть время в формате unix. По моей задумке это выглядит так - берём начало сегодня в unix функцией mktime, а затем прибавляем 930,1030,1230 и.т.д. Но я забыл учесть что такие числа нельзя просто напросто даже умножить на часы (3600) что будет неккоректно. Возникает вопрос - можно ли вообще функциями php перевести дату типа 930 в unixtime?

Answer 1

SUBSTR
если я правильно понимаю, то 930 - это 9:30 Тогда проще всего

$minutes = intVal(substr($wierdTime,-2));
$hours = intVal(substr($wierdTime,0,-2));

N.B. Не надо так дату писать.

Answer 2

Можно дополнить ведущий нуль к часам и воспользоваться методом createFromFormat:

$time = '930';
$dt = DateTime::createFromFormat('Hi', str_pad($time, 4, '0', STR_PAD_LEFT));
echo $dt->getTimestamp(), PHP_EOL; // 1530171000 - unix timestamp
echo $dt->format('Y-m-d H:i'); // 2018-06-28 09:30 - тут будет текущий день

Если нужно только количество секунд с текущей полуночи(разве это unixtime?), его можно посчитать:

echo ($dt->format('H')*60 + $dt->format('i'))*60; //34200
READ ALSO
Почему данные не доходят?

Почему данные не доходят?

Всем приветЕсть метод который отвечает за регистрацию:

189
Как узнать длину видео [дубликат]

Как узнать длину видео [дубликат]

На данный вопрос уже ответили:

166
Получить строку по номеру

Получить строку по номеру

Вот к примеру спарсил я плейлист и мне нужны в нем первые 3 строки, как мне их получить? Учитывая то, что длина строк всегда разная

204