在日期时间戳上添加时间字符串HH:MM(小时和分钟)

时间:2018-06-24 15:04:53

标签: php string timestamp

我需要在日期时间戳中添加以强格式存储的时间(格式:hh:mm),之前没有时间信息(例如2018-06-12 00:00:00)。怎么做?

我想这样做:

$startTime = "11:45";
$startDate = 1528754400; // 2018-06-12 00:00:00

$startDate = $startDate + $startTime; //2018-06-12 11:45:00

2 个答案:

答案 0 :(得分:0)

您可以做一些简单的数学运算然后到那里。 60分钟乘以3600分钟,小时/分钟所用的秒数。

$startTime = "11:45";
$startDate = 1528754400;
$time = explode(':', $startTime);
$minutes = $time[1] * 60;
$hours = $time[0] * 3600;

然后将其拼凑在一起。 (时间戳记是自1970年以来的秒数,因此只需加上秒数即可)

$startDate + $minutes + $hours

https://3v4l.org/U2jHL

另一种方法是使用datetime类。

$startTime = "11:45";
list($hours, $minutes) = explode(':', $startTime);
$date = new DateTime(date('Y-m-d', 1528754400));
$date->add(new DateInterval('PT' . $hours .'H' . $minutes . 'M'));

https://3v4l.org/D51XB

答案 1 :(得分:0)

使用strtotime碰到了这一点:

$startTime = "11:45";
$startDate = 1528754400; // 2018-06-12 00:00:00
$startTimeTmp = explode(":",$startTime);

$finalTimestamp = strtotime("+".$startTimeTmp[0]." hours ".$startTimeTmp[1]." minutes", $startDate);