有没有办法将输入时间字符串(例如:01:13
)转换为Zend日期对象,以便稍后将其存储在Mysql数据库的timestamp列中。
示例:
如果当前日期时间为2013-07-15 17:33:07
且用户输入18:05
,则输出应为2013-07-15 18:05:00
。
如果当前日期时间为2013-07-15 17:33:07
且用户输入02:09
,则输出应为2013-07-16 02:09:00
。 请注意,由于输入的时间低于当前时间,因此将其视为明天时间。
我只想获得满足输入时间的下一个时间点。我打开使用普通PHP或Zend_Date的解决方案。
答案 0 :(得分:1)
我认为您应该将当前时间与用户输入的时间进行比较,并创建“今天”或“明天”的DateTime对象。 DateTime接受strtotime()
个相对时间参数。
快速破解。截至今日,15.07.2013 23:58当地时间:
$nextTime = new DateTime('today 18:10');
if ($nextTime < new DateTime('now')) { // DateTime comparison works since 5.2.2
$nextTime = new DateTime('tomorrow 18:10');
}
echo $nextTime->format('d.m.Y H:i:s');
答案 1 :(得分:-1)
这里有一个工作示例,您只需添加动态变量以使用用户输入检查日期
您可以使用mktime function来管理日期。
$input_date = date("Y-m-d H:i:s",mktime(18,05,0,date("m"),date("d"),date("Y")));
echo "current time".$current_time = date('Y-m-d H:m:s');
echo "<br>User input is ".$input_date;
if(strtotime($current_time) > strtotime($input_date)){
$input_date = date("Y-m-d H:i:s",mktime(18,05,0,date("m"),date("d")+1,date("Y")));
echo "in";
}else{
// nothing to do
}
echo "<br> result->".$input_date;
我希望它一定会解决你的问题