繁体   English   中英

如何检查时间是否晚了一个多小时?

[英]How can I check if the time is more than an hour later?

所以我有一个更新yyyy-mm-dd hh:mm:ss的日期/时间的数据库条目。

现在我想检查一下,数据库和 60 分钟的实际时间之间是否有空格。 我怎样才能做到这一点?

例子:

DB: 2020-02-14 10:00:00
Time now: 2020-02-14 11:01:00
Do something

DB: 2020-02-14 10:00:00
Time now: 2020-02-14 10:59:00
Do nothing

你可以使用这样的东西:

$t1 = strtotime( '2006-04-14 11:30:00' );
$t2 = strtotime( '2006-04-12 12:30:00' );
$diff = round(($t1 - $t2) / 3600);

在 MySQL 中,您可以进行日期运算:

update mytable
set mydatetime = now()
where mydatetime <= now() - interval 1 hour and id = ?

where子句过滤列mydatetime超过一小时的记录。 你没有告诉你想要做什么,所以我假设了一个更新查询,它将日期/时间重置为当前日期/时间。

这假设您要更新给定记录的时间戳,而不是跨整个表,因此条件id = ? ,您可以针对您的用例进行调整或删除。

你好 Schmaniel 首先我认为你应该使用 Carbon() https://carbon.nesbot.com/docs/来获得正确的结果。 这是处理时间格式和时间戳的好方法。

 $now = Carbon::now(); $dbtime = Carbon::createFromFormat('Ymd H:i:s', '1975-05-21 22:10:22'); $totalDuration = $now->diffForHumans($dbtime); dd($totalDuration);

$currentDate = new DateTime();
$databaseDate = new DateTime($dateFromDatabase);
$interval = $datetime1->diff($datetime2);

然后你可以检查使用 $interval 变量

您可以像这样使用 mysql TIMESTAMPDIFF

SELECT TIMESTAMPDIFF(HOUR,'2003-02-01','2003-05-01 12:05:55');

您可以使用以下单位之一:

MICROSECOND(微秒)、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER 或 YEAR。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM