有谁知道是否已经有一种方法可以将日期格式化为一定的精度,而无需我编写一些东西来重建给定的格式?
例如,假设我有一个任何格式的日期,但我想使用 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/