PHP DateTime::diff 问题与 DateTime::format

标签 php datetime-format

当我尝试使用正常的 PHP 代码(d、Y、m 等)为日期和时间格式化我的日期差异时,它只输出字母,而不是值。这仅在我格式化 DateTime::diff 时才会发生。它适用于简单的 DateTime 对象。

这个:

$date1 = new DateTime('2000-01-01');
$date2= new DateTime('now');
$date=$date2->diff($date1);
echo $date->format('d days ago');

“d 天前”的输出。

我知道如果我用 %a 替换 d,它会输出这是多少天前的信息。我想知道还有哪些字符可以输出秒、分甚至年。

提前致谢!

最佳答案

DateTime::diff() 返回 DateInterval对象。

例如:

<?php

$date1 = new DateTime('2000-01-01');
$date2= new DateTime('now');
$interval=$date2->diff($date1);
echo "Years: {$interval->y }\n";
echo "Months: {$interval->m }\n";
echo "Days: {$interval->d }\n";
echo "Hours: {$interval->h }\n";
echo "Mins: {$interval->i }\n";
echo "Secs: {$interval->s }\n";
echo $interval->format("%Y years, %m months, %d days,  %H hours, %i minutes, %s seconds") . "\n";

将输出:

Years: 13
Months: 1
Days: 11
Hours: 13
Mins: 14
Secs: 44
13 years, 1 months, 11 days,  13 hours, 21 minutes, 43 seconds

关于PHP DateTime::diff 问题与 DateTime::format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838762/

相关文章:

php - 如何管理依赖自动加载

javascript - 如何说给定的 dateTime 已经是 UTC 时间格式

go - 定义自定义时间格式

php - 在sql语句中包含变量的正确方法是什么

php - 将 PHP 站点从 32 位 RedHat 迁移到 64 位

php - Laravel 所有 session ID 与 Redis 驱动程序

php - 如何在 Windows 8.1 上安装 PHP 引擎?

c# - 服务器的全局文化在不同服务器上不同时的 DateTime 问题

c# - 如何解析像 "9 October 2014 20:23:09 BST"这样的日期

java - 将日期从 ISO 8601 Zulu 字符串转换为 Java 8 中的 java.time.Instant