【问题标题】:PHP date_create_from_format using with object giving bool(false) errorPHP date_create_from_format 使用对象给出 bool(false) 错误
【发布时间】:2021-02-28 04:11:21
【问题描述】:

我正在尝试在一个对象上使用 PHP date_create_from_format,以便我可以使用 diff() 函数来计算从创建记录到今天(无论何时查看)的天数

如果我回显$job->created_date,我会得到类似 2021-2-27 10:05:00

我开始:

$created = $job->created_date;
$date_now = date('Y-m-d');
$job_posted_date_difference = $date_now->diff($created); <<< the error shows on this line
echo $job_posted_date_difference.$difference->d.' days';

但我收到一个致命错误Call to a member function diff() on string

所以.......我认为这可能是初始日期问题的格式,然后我尝试了

$created = date_create_from_format('Y-m-d', $job->created_date);
$date_now = date('Y-m-d');
var_dump ($created); 

但是转储显示 - bool(false)

如何正确解决此问题?我查看了许多其他 SO 问题,它们的范围似乎从日期顺序错误(我尝试了两种方式)到格式问题。

【问题讨论】:

  • 2021-2-27 10:05:00 不是 Y-m-d$date_now = date('Y-m-d'); 不返回 DateTime 对象,所以 ->diff 不会存在
  • 我从这个例子中得到了这个 - w3schools.com/php/php_date.asp。那么 MYSQL CURDATE() 的 php 等价物是什么
  • @lawrencecherone 谢谢我明白现在出了什么问题

标签: php time


【解决方案1】:

如果你想从两个日期计算天数

那么你可以使用

$ceated_date = "2021-2-27 10:05:00";

//create a date object of created date and get timestamp.
$t1 = (new DateTime($created_date))->getTimetamp();

//create a date object of now and get timestamp.
$t2 = (new DateTime("now"))->getTimestamp();

//this will give you days
$day_diff = floor(($t2 - $t1) / 86400);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多