【问题标题】:PHP Timestamp ErrorPHP时间戳错误
【发布时间】:2017-12-01 17:59:04
【问题描述】:

我对下面的输出有一个小问题

我的数据库中的过期日期是 2017-12-02 06:32:46

但下面的代码将其输出为 1969 年 12 个月 18 天

$target = strtotime("Y-m-d H:i:s", $user->getFromTable_MyId("expiry_date", "users")); //date in db = 2017-12-02 06:32:46
$today =  date("now");
$difference = $target - $today;
$year = date('Y',$difference);
$month = date('m',$difference);
$days = date('d',$difference);
print $year." Years,  ".$month." Months,  ".$days." Days";

【问题讨论】:

  • 你使用strtotime()错了
  • 您使用了错误的功能。 date("now") 应该是 time()。你的strtotime 应该是date。减法应该在 unix 时间戳上,而不是在时间字符串上。
  • 我用过date($user->getFromTable_MyId("expiry_date", "users")); 我也试过我用过date("Y-m-d H:i:s", $user->getFromTable_MyId("expiry_date", "users"));
  • 使用editstackoverflow.com/posts/47598991/edit 链接更新问题。这里有多个问题。如果“时间戳”确实是日期时间,则需要将其转换为字符串。

标签: php datetime timestamp


【解决方案1】:

此行不正确;

$target = strtotime("Y-m-d H:i:s", $user->getFromTable_MyId("expiry_date", "users"));

应该是

$target = strtotime($user->getFromTable_MyId("expiry_date", "users"));

编辑,date("now") 应该是 time()

并在此处查看此答案https://stackoverflow.com/a/10696762/3790921

您的“计算”代码的其余部分也不起作用。它只是给你一个日期,比如 1970-01-01 12:13:03

您的 var $difference 是两个日期之间的秒数。您必须使用普通数学计算小时、分钟和秒。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多