2010-07-26 2 views
1

может кто-нибудь посоветует, как я конвертировал бы дату, такую ​​как «Вторник, 22 июня 2010 года 00:00» в временную метку unix, используя strtotime()? Мне нужно также хранить часы и минуты, и неясно, лучше ли это делать с использованием strtotime. Спасибо за любую помощь!strtotime для конвертирования даты и времени

ответ

3

Из-за второго ,, strtotime() в настоящее время не понимает ваш формат даты/времени (удалите его, и он будет работать должным образом).

Если у вас есть статический формат для даты, использование strptime() или DateTime::createFromFormat() более надежны и позволят другим строкам, отличным от даты в день, присутствовать до тех пор, пока вы их определили.

echo DateTime::createFromFormat("l, j F, Y H:i","Tuesday, 22 June, 2010 00:00")->format("c"); 
+0

Благодаря Wrikken, я не использовал DateTime :: createFromFormat раньше - очень полезно. –

+0

Следует отметить, что методы DateTime доступны только в PHP 5.3+, однако, если вы посмотрите на документацию PHP, большинство методов имеют «альтернативы» в комментариях. – tplaner

+0

Большинство методов 'DateTime' доступны с 5.2, но насколько вы правы, формат' DateTime :: 'доступен начиная с 5.3, которому уже больше года. – Wrikken

0

strtotime() преобразует как дату, так и время. Он преобразует строку в Unix timestamp.

Что такое штамп времени unix?

Временная метка unix - это способ отслеживания времени в качестве общего количества секунд. Этот отсчет начинается в эпоху Unix на 1 января 1970 года. Поэтому отметка времени unix представляет собой просто число секунд между конкретной датой и эпохи Unix. Это очень полезно для компьютерных систем для отслеживания и сортировка информации в динамическом и распределенных приложений как онлайн, так и на стороне клиента.

http://www.unixtimestamp.com

Вы можете преобразовать метку времени UNIX обратно в строку, используя date

0

strtotime и date могут быть использованы для преобразования в UNIX метки времени и вытяжных частей этой метки времени соответственно.

Комбинация должна делать то, что вам нужно.

0
$string = "Tuesday, 22 June, 2010 00:00"; 
$dateString = substr($string,0,-5); 
$timeArray = explode(':',substr($string,-5)); 
$timeStamp = strtotime($dateString) + 60*$timeArray[0] + $timeArray[1]; 
Смежные вопросы