2012-04-18 2 views
2

Я пытаюсь получить временную метку: «час: минута am/pm месяц/день/год», но, похоже, она работает неправильно. В каком порядке он должен быть?Как написать полный рабочий день в strtotime?

Пример моего текущего заказа: 11:59 утра, 04/19/2012

+0

Что вы пытаетесь сделать точно? Вы хотите знать, как должна выглядеть строка формата даты? – Bojangles

+0

Вы хотите время с 11:59, 04/19/2012? или еще? –

ответ

3

Это, как вы преобразовать запрашиваемую отформатированный строка даты/времени в метку времени:

$date_string = '11:59 am, 04/19/2012'; 
$dateTime = DateTime::createFromFormat("H:i a, m/d/Y", $date_string); 
$timestamp = $dateTime->getTimestamp(); 
echo $timestamp; 

Выход:

1334833140 
+1

Альтернативно, если вы хотите использовать процедурный способ, вы можете вызывать 'date_create_from_format' вместо' DateTime :: createFromFormat' – PadraigD

0

Если я правильно понимаю ваш вопрос, то строка вам нужно разобрать, чтобы date() получить формат, который вы хотите от отметки времени это:

date("H:i a, m/d/Y", $timestamp); 

Другие символы форматирования можно найти в документации, here.


strtotime() не будет преобразовывать формат даты вы дали в метку времени, однако более мощный и универсальный DateTime класс может быть в состоянии.

2

Поместите дату до времени:

echo strtotime('04/19/2012 11:59 am'); 
2

Я считаю, что это было бы похоже на эту

echo strtotime(date("Y-m-d H:i:s")); 

Так заказ

год-месяц-день часы: минуты: секунды

Я также предполагаю, что strtotime достаточно умен, чтобы знать разные форматы даты, поэтому вы должны быть отлично с вашим форматом даты, просто поставьте его как первую часть и время после нее.

1

Попытка удалить следующий символ после утра: ,

Например используйте:

strtotime("11:59 am 04/19/2012") 
Смежные вопросы