PHP 日期格式精度

标签 php datetime

有谁知道是否已经有一种方法可以将日期格式化为一定的精度,而无需我编写一些东西来重建给定的格式?

例如,假设我有一个任何格式的日期,但我想使用 PHP DateTimeFormat 将其转换为 Y-m-d H:i:s 格式(参见下面 PHP 站点的示例)

    $date = new DateTime('2000-01-01');
    echo $date->format('Y-m-d H:i:s');
    Result: 2000-01-01 00:00:00

我真正想让它做的是,如果 H:i:s 部分从未包含在原始日期中,则不返回结果中的部分。

目前我能想到的唯一方法是使用date_parse_from_format,找出缺少的内容,然后对日期格式 'Y-m-d H:i:s' 进行某种字符串处理省略我不需要的部分(困惑的字符串格式,因为这个日期格式可以是任何东西)。

如果已经有我错过的功能,我不想重新发明轮子。

他,乔

编辑:为了更清楚,日期格式字符串和 $date 的精度是可变的,所以我不能对格式字符串进行硬编码,并且在我得到它之前我不会知道 $date 的精度.

最佳答案

我想你必须知道你的日期是什么格式。

<?php
echo 'Current time: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTime::createFromFormat($format, '2009-02-15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-!d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTime::createFromFormat($format, '15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

关于PHP 日期格式精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15001989/

相关文章:

ios - 如何获取特定时间的 UTC 时间戳?

不同国家的 C# 和当前本地时间

php - 在 PHPUnit 中默认运行单个测试套件

php - 在 PHP 中使用 cookie 打印历史记录

php - 我可以覆盖 PHP 内置函数 echo() 吗?

python - 将 Python 解析为 Golang - DateTime

python - 如何有效地将秒位置添加到日期时间

c# - 将日期时间转换为字符串

php - 检查数组是否部分匹配 (PHP)

php - 在单个查询中从所有数据库获取内容