嗨,我的 php 很生锈,我不太记得如何做。
我有一个脚本,我只想每 15 分钟调用一次。我创建了一个名为 last_updated 的表。我想要做的是在我的脚本顶部有一些代码来查询这个 last_updated 表,如果 now() 减去上次更新时间大于 15 分钟,然后运行脚本并将 last_updated 更新为现在...如果不是,请不要运行脚本。这有意义吗?
现在我知道我什么时候更新 last_updated 我需要使用 now() 来放入一个新的时间戳,但是我不确定如何将 now 与 db 值进行比较以查看它是否大于 15 分钟.
任何想法
最佳答案
<?php
$pdo = new PDO('mysql:host=your_host;dbname=your_database', $user, $password, array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
// query the database. change
$stmt = $pdo->query('SELECT UNIX_TIMESTAMP(last_updated_date) FROM last_updated ORDER BY last_updated_date DESC LIMIT 1');
$lastUpdatedTimestamp = $stmt->fetch(PDO::FETCH_COLUMN);
if ((time() - $lastUpdatedTimestamp) > (60 * 15)) {
touch($file);
// do stuff
}
time()以秒为单位为您提供当前时间。您可能应该将 60 * 15 展开为 900,我只是提供了两个数字来说明发生了什么。
此外,文件可能比数据库表更好。看看 touch() 功能。它更改文件的修改时间,或者如果不存在则创建一个以当前时间作为修改时间的空文件。您可以使用 filemtime() 检查文件修改时间
<?php
$lastUpdated = null;
$file = '/path/to/writable/file/with/nothing/in/it';
if (file_exists($file)) {
$lastUpdated = filemtime($lastUpdated);
}
if (!$lastUpdated || (time() - $lastUpdated) > 900) {
touch($file);
// do stuff
}
关于php - 比较时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487799/