У меня есть значение месяца (1-12), дневное значение (1-31) и значение года (2010,2011,2012). У меня также есть значение часа и минутное значение.
Как я могу передать это strtotime()
таким образом, чтобы преобразовать его в метку времени?
У меня есть значение месяца (1-12), дневное значение (1-31) и значение года (2010,2011,2012). У меня также есть значение часа и минутное значение.
Как я могу передать это strtotime()
таким образом, чтобы преобразовать его в метку времени?
Учитывая переменные $year
$month
$day
$hour
$minute
, вы можете сделать:
strtotime("$year-$month-$day $hour:$minute");
Будьте осторожны, чтобы заключить переменные с "
, никогда в этом случае с '
.
ОБНОВЛЕНИЕ (спасибо комментариям @Clockwork и @Tadeck):
Если существует переменная $timeofday
, которая представляет время дня (то есть AM или PM),
то вы можете проанализировать его следующим образом:
strtotime("$year-$month-$day $hour:$minute$timeofday");
то есть просто присоедините эту переменную к концу текста.
Является ли strtotime
лучшим инструментом для этой работы? Что насчет mktime()
?
$time = mktime($hour, $minute, 0, $month, $day, $year);
зачем преобразовывать строку в дату, когда вы уже знаете год, месяц и дату.
использовать setDate
<?php
$date = new DateTime();
$date->setDate(2001, 2, 3);
echo $date->format('Y-m-d');
?>
Вы можете предоставить ему функцию strtotime()
разными способами, как указано в документации. Вот некоторые примеры:
$your_time = strtotime('12/31/2011 9:59');
$your_time = strtotime('2011-12-31 9:59');
$your_time = strtotime('December 31, 2011 9:59');
и т.д.. Это действительно очень гибко.
Вы можете найти список допустимых форматов в документации, и это (из списка "Составные форматы" в указанной документации) например:
10/Oct/2000:13:55:36 -0700
,2008:08:07 18:11:31
,2008-08-07 18:11:31
,2008-07-01T22:35:17.02
,2008-07-01T22:35:17.03+08:00
,20080701T22:38:07
,20080701T9:38:07
,20080701t223807
,20080701T093807
,2008-7-1T9:3:37
,(это действительно копия документации)
Используйте его так: strtotime("YYYY-mm-DD HH:MM AM/PM")
:
echo date("d F Y h:i:s A", strtotime("2011-06-01 11:15 PM")) . "\n";
01 June 2011 11:15:00 PM
Y-m-d hh:mm
будет работать
echo strtotime('2011-12-14 11:44 am');
cit @Pekka:)
strtotime($month."-".$day."-".$year)