1

有没有办法将输入时间字符串(例如:)转换01:13为 Zend 日期对象,以便稍后将其存储在 Mysql 数据库的时间戳列中。

例子:

如果当前日期时间是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 的解决方案持开放态度。

4

2 回答 2

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');
于 2013-07-15T21:45:52.960 回答
-1

这是一个工作示例,您只需添加动态变量以使用用户输入检查日期

您可以使用mktime 功能来管理您的日期。

$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;

我希望它一定能解决你的问题

于 2013-07-16T11:57:37.850 回答