我正在使用我的PHP脚本来设置日期和时间。我需要一些帮助来设置正确的日期,因为在我的代码中,当我有两个不同的时间06:00
和20:00
时,它将显示当前日期和时间。我发现我的代码设置日期是错误的,因为我设置的06:00
的时间应该是第二天的日期,而时间20:00
的设置应该是今天的日期。当前时间是21:18pm
。
$autoresponder_date
的输出:
2019-11-25 06:00
2019-11-25 20:00
$get_time
的输出:
06:00
20:00
代码如下:
$auto_responders = $link->prepare('SELECT * FROM autoresponder WHERE campaign = ? ORDER BY id ASC');
$auto_responders->execute([$campaign]);
$auto_responders->setFetchMode(PDO::FETCH_ASSOC);
$auto_responders = $auto_responders->fetch(PDO::FETCH_ASSOC);
$get_time = $auto_responders['send_time'];
if ($get_time >= strtotime('00:00'))
{
$autoresponder_date = date('Y-m-d', strtotime($get_time . ' +1 day'));
}
else
{
$autoresponder_date = date('Y-m-d', strtotime($get_time));
}
$send_time = $autoresponder_date . ' '. date('H:i ', strtotime($get_time));
能否请您举一个例子,说明如何设置时间06:00
和20:00
的日期,就像时间是06:00
,而我的当前时间是凌晨12点,然后设置为第二天的日期,时间为20:00
,那么它应该设置当天的凌晨12点之前的日期吗?
谢谢。
答案 0 :(得分:-1)
最好使用DateTime。我如下更改了您的代码,但您的情况尚不清楚。 如果您无法管理……否则请评论您的情况,然后我将更新答案。 以便将文本转换为DateTiem:
$get_time = '2019-11-25 06:00';
$get_time = DateTime::createFromFormat('Y-m-d H:i',$get_time);
//now $get_time is an object
您的代码如下:
$auto_responders = $link->prepare('SELECT * FROM autoresponder WHERE campaign = ? ORDER BY id ASC');
$auto_responders->execute([$campaign]);
$auto_responders->setFetchMode(PDO::FETCH_ASSOC);
$auto_responders = $auto_responders->fetch(PDO::FETCH_ASSOC);
$get_time = $auto_responders['send_time'];
$get_time = DateTime::createFromFormat('Y-m-d H:i',$get_time);
if ($get_time >= new DateTime())
{
$autoresponder_date = $get_time->modify('+1 day')->format('Y-m-d');
}
else
{
$autoresponder_date = $get_time->format('Y-m-d');
}
$send_time = $autoresponder_date . ' '. $get_time->format('H:i');