我有月值(1-12),日值(1-31)和年值(2010,2011,2012)。我还有一个小时值和一分钟值。
如何以strtotime()
的方式将其转换为时间戳?
答案 0 :(得分:15)
鉴于变量$year
$month
$day
$hour
$minute
,您可以这样做:
strtotime("$year-$month-$day $hour:$minute");
请谨慎使用"
将变量括起来,在这种情况下不要使用'
。
更新(感谢@Clockwork和@Tadeck的评论):
如果有一个变量$timeofday
代表时间(即上午或下午),
然后你可以用以下方法解析它:
strtotime("$year-$month-$day $hour:$minute$timeofday");
也就是说,只需将该变量附加到文本的末尾。
答案 1 :(得分:8)
为什么在您已经知道年月和日期时将字符串转换为日期。
使用setDate
功能
<?php
$date = new DateTime();
$date->setDate(2001, 2, 3);
echo $date->format('Y-m-d');
?>
答案 2 :(得分:7)
strtotime
是这项工作的最佳工具吗?那么mktime()
呢?
$time = mktime($hour, $minute, 0, $month, $day, $year);
答案 3 :(得分:4)
如documentation中所述,您可以通过多种方式将其提供给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');
等。它非常灵活。
您可以找到有效格式列表in the documentation,例如:(来自上述文档中的“化合物格式”列表):
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
,(这是文档的副本)
答案 4 :(得分:1)
像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
答案 5 :(得分:0)
Y-m-d hh:mm
将有效
echo strtotime('2011-12-14 11:44 am');
cit @Pekka:)
答案 6 :(得分:-2)
strtotime($month."-".$day."-".$year)