【发布时间】:2021-07-12 12:39:51
【问题描述】:
我正在尝试查找当前日期和时间,转换为 unix 时间戳,然后减去以前的时间。我尝试了多种方法并收到错误或不正确的值。到目前为止,这是我的代码:
// Current date and time
$currentTime = date("Y-m-d H:i:s");
// Convert datetime to Unix timestamp
$currentTimestamp = strtotime($currentTime);
// Create previous date and time
$previousTime = new DateTime("2021-04-17 13:00:00");
// Specify display format
$previousTime->format('Y-m-d H:i:s');
// Convert to Unix timestamp
$previousTimestamp = strtotime($previousTime);
// Subtract previous time from current time
$time = $currentTimestamp - $previousTimestamp;
// Display result
echo $time;
那么它应该如何工作,如果当前日期和时间是例如:2021-04-17 14:00:00 而之前的日期和时间是 2021-04-17 13:00:00,那么结果应该是 3600。或者如果有两个小时的间隔,那么它是 7200,等等。使用这个当前代码,我得到的错误是:
Uncaught TypeError: strtotime(): Argument #1 ($datetime) must be of 输入字符串,日期时间
我尝试过的其他代码没有返回正确的时差或引发其他错误。如何获得正确的时差?
【问题讨论】:
-
为什么不用DateTime的
sub()方法呢?