PHP 日期时间:计算间隔日期 1 个改进

日期时间的加减

PHP 函数 strtotime — 将任何字符串的日期时间描述解析为 Unix 时间戳

strtotime(string $datetime, int $now = time()): int

$now 默认为当前时间;如果传入自定义时间,则为你传入的时间,出入的值为时间戳
时间戳计算

$date = '2020-12-1 14:32';
$time = strtotime($date);  // 将格式化时间转为时间戳

计算昨天和明天的时间

// 当前时间:2021-11-03 23:51:00
//昨天
echo date('Y-m-d H:i:s',strtotime('-1 days'));
//输出 2021-11-02 23:51:00

// 明天
echo date('Y-m-d H:i:s',strtotime('+1 days'));
// 2021-11-04 23:51:00

计算15分钟后时间

// 当前时间 2021-11-03 23:52:01
echo date('Y-m-d H:i:s',strtotime('+15 minutes'));
//输出 2021-11-04 00:07:01

年月日时间计算用法

ini_set('date.timezone','Asia/Shanghai'); // 需要注意的是,为了防止测试时时间时区不对,可以在头部加入这句
// 当前时间
echo date('Y-m-d H:i:s') . "<br>";

// 当前时间加1分钟
echo date('Y-m-d H:i:s',strtotime('+1 minutes')) . "<br>";

// 当前时间加1小时
echo date('Y-m-d H:i:s',strtotime('+1 hours')) . "<br>";

// 当前时间加1天
echo date('Y-m-d H:i:s',strtotime('+1 days')) . "<br>";

// 当前时间加1个星期
echo date('Y-m-d H:i:s',strtotime('+1 week')) . "<br>";

// 当前时间加1个月
echo date('Y-m-d H:i:s',strtotime('+1 month')) . "<br>";

// 当前时间加1年
echo date('Y-m-d H:i:s',strtotime('+1 year')) . "<br>";

// 当前时间减1分钟
echo date('Y-m-d H:i:s',strtotime('-1 minutes')) . "<br>";

// 当前时间减1小时
echo date('Y-m-d H:i:s',strtotime('-1 hours')) . "<br>";

// 当前时间减1天
echo date('Y-m-d H:i:s',strtotime('-1 days')) . "<br>";

// 当前时间减1个星期
echo date('Y-m-d H:i:s',strtotime('-1 week')) . "<br>";

// 当前时间减1个月
echo date('Y-m-d H:i:s',strtotime('-1 month')) . "<br>";

// 当前时间减1年
echo date('Y-m-d H:i:s',strtotime('-1 year')) . "<br>";

// 2020-12-1 14:32 加 15分钟
$date = '2020-12-1 14:32';
$time = strtotime($date);  // 需要先将时间转为时间戳
echo date('Y年m月d日 H:i:s',strtotime('+15 minutes',$time));
// 输出 2020年12月01日 14:47:00

时间差计算

// 当前时间 2021-11-04 00:18:59
echo date('Y-m-d H:i:s') . '<br>';
$current_time = time();

// 未来时间
$future_time = '2022-5-1 12:12:12';

// 先将未来的时间转换为时间戳
$future_time = strtotime($future_time);
// 时间差
$time = $future_time - $current_time;

// 秒
echo $time . '<br>';
// 输出 15421993
// 分钟
echo floor(($time / 60)) . '<br>';
// 输出 257033
// 小时
echo floor(($time / 3600)) . '<br>';
// 输出 4283
// 天
echo floor(($time / 86400)) . '<br>';
// 输出 178
``
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!