php - PHP 中的日期不准确

标签 php

我有这个代码:

$expiration_date='2041-07-14'
           $epoch_timestamp_expiration_date =  strtotime($expiration_date);
       //Get 7 days
       $seven_days_ago=7*86400;
       //subtract seven days from the expiration date.
       $epoch_timestamp_expiration_date-=$seven_days_ago;
       //Format the new expiration date - 7 days ago
       $formatted_epoch_time=date('Y-m-d',$epoch_timestamp_expiration_date);       
       //Todays format.
       $today=date('Y-m-d', time());
       //Todays miliseconds
       $today_secs=strtotime($today);
       //Subtracting expiration date in epoch secs from todays secs
       $diff_secs = abs($epoch_timestamp_expiration_date-$today_secs);
       //Finding the number of days between the two
       $days=floor($diff_secs/86400);
       //Printing output
  echo "<br/><br/>Days: ". $days; 
     echo "<br/><br/>Today: ".$today;
    echo "<br/><br/>Expiration Date : ".$expiration_date;
     echo "<br/><br/>Expiration Date 7 days ago: ".$formatted_epoch_time ; 

      //Is cache near to expire. 7 days closer to the expiration date. 
        if ($epoch_timestamp_expiration_date>$today_secs) {
     echo "<br/><br/>The site isnt about to expire ";
            return "<br/><br/>Cache date isnt about to expire ".$days;
        }

当输出得到回应时,我得到这个:

Days: 15634

Today: 2012-10-14

Expiration Date : 2041-07-14

Expiration Date 7 days ago: 1969-12-25

为什么?

现在如果我交换参数的值:

$expiration_date='2013-07-14';

我得到:

Days: 266

今天:2012-10-14

截止日期:2013-07-14

7 天前到期:2013-07-07

网站不会过期

最佳答案

这是因为 expiration_date 超出了 Unix 时间戳 (2038-01-19): http://en.wikipedia.org/wiki/Unix_time

http://php.net/manual/en/function.date.php

“时间戳的有效范围通常是从格林威治标准时间 1901 年 12 月 13 日星期五 20:45:54 到格林威治标准时间 2038 年 1 月 19 日星期二 03:14:07。(这些日期对应于最小值和最大值对于 32 位有符号整数)。但是,在 PHP 5.1.0 之前,在某些系统(例如 Windows)上,此范围限制为 01-01-1970 到 19-01-2038。”

关于php - PHP 中的日期不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12883317/

相关文章:

php 在 s3 导入的图像上添加水印

php - MySQL 准备好的查询是否为每 session 一次的查询提供性能优势?

php - MySQL 连接 "Cost"?

php - Laravel 5.1 在事务 block 中重定向

javascript - 将 JSON 对象写入现有的 .json 文件

PHP:str_replace() - 忽略空格

php - 主键 ID 字段自动递增不允许 JSON 导入。 PHP/PDO 和 MySQL

PHPMailer - AddAttachment 不起作用

php - 如何对同一搜索模型同时使用 condition() 和 addcondition()

php - codeigniter 4,安装与composer问题