2 回答
TA贡献1815条经验 获得超6个赞
您所做的只是将一个字符串附加(连接)到另一个字符串上。
$time = "22:30:00"; // This is the time you have
$date = date("Y-m-d"); // Right now in yyyy-mm-dd format.
$newdatetime = $date.' '.$time;
这将为您提供当前日期,并附有提供的时间。您可以使用以下方法将其转换回时间戳:
$timestamp = strtotime($newdatetime);
下面的答案基于原始问题,其中时间被认为是从现在开始的偏移量。将其留在这里只是为了避免删除大量代码。
函数 strtotime 很容易使用。但是,它不接受 HH:MM:SS 格式。所以,你必须改变字符串。我会这样做:
$time = "22:30:00"; // This is the time you have
$a = explode(':', $time);
$str = '+'.$a[0].' hours '.$a[1].' minutes '.$a[2].' seconds'; // This breaks it into separate numbers with labels.
$date = date("Y-m-d h:i:s", strtotime($str)); // The adjusted date
您可以通过更改日期函数中使用的第一个字符串来更改输出的格式。
TA贡献1810条经验 获得超4个赞
这更简单,更具可读性
$time = "21:30:00"; // Time from input
$today = date("Y-m-d $time");
$tomorrow = date("Y-m-d H:i:s", strtotime($today)+86400);
$date = strtotime($today) < strtotime("now") ? $tomorrow : $today;
说明:我们在今天和明天的指定时间获取时间戳,如果今天的时间戳已经过去,我们使用明天的时间戳。简单的。:)
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报