Я работаю с вводом, тип которого datetime-local
. Мне нужно преобразовать это в метку времени unix.
вот пример того, в каком формате представлено необработанное значение 2018-06-12T19:30
.
Мне нужно преобразовать даты в форматах, подобных приведенному выше, в этот формат 1608954764
, текущую временную метку unix.
Вы можете использовать date_create_from_format.
Преимущество date_create_from_format заключается в том, что система не определяет неправильный месяц и день (например, 2011-3-10 может означать 10 марта или 3 октября в разных странах, но date_create_from_format безопасен, он преобразуется в соответствии с установленным вами правилом)
Следующее:
<?php
$date = date_create_from_format('Y-m-j H:i', str_replace('T',' ', '2018-06-12T19:30'));
echo $date->getTimestamp();
?>
strtotime() вернет эпоху Unix для заданного времени.
<?php
strtotime("2018-06-12T19:30");
?>
strtotime() — самый простой выбор, но вам действительно следует рассмотреть возможность использования класса DateTime
, когда это возможно.
Чтобы получить временную метку UNIX с помощью DateTime
, просто используйте format('U').
// returns UNIX timestamp as string
$ts = (new DateTime("2018-06-12T19:30"))->format('U');
Для этого также есть ярлык под названием getTimestamp().
// returns UNIX timestamp as int
$ts = (new DateTime("2018-06-12T19:30"))->getTimestamp();
Привет и добро пожаловать в SO. Чтобы ответить на ваш вопрос, вы должны попытаться предоставить некоторый код (написанный вами), а затем объяснить фактическое поведение и поведение, которое вы ожидаете. PHP-документ DateTime