我有这种格式的日期:
20110122000000.000
我该如何改变呢?
12.01.2011
(2011年1月12日)
然后我在php中使用它:
$origDate = "20110112000000.000";
$newDate = date("d.m.Y", strtotime($origDate));
它可以输出如下内容:
01.12.2011
谢谢!
答案 0 :(得分:2)
如果您使用的是> = PHP 5.3
$date = DateTime::createFromFormat('Ymd', '20110112000000.000');
echo $date->format('d.m.Y');
我无法在这里测试PHP 5.3,所以如果有无关紧要的内容正在播放createFromFormat()
,请先删除它。
我不知道所有您的格式,但这会删除字符串末尾的所有0
和.
。
$date = rtrim($date, '.0')
因为最重要的数字总是在右边,(在这个例子中是2
),所以它应该不是问题。
答案 1 :(得分:1)
我是这样做的:
$origDate = "20110112000000.000";
# strip stuff after the period because strptime doesn't support milliseconds
$date = preg_replace("/\.\d+$/", "", $origDate);
$time = strptime($date, "Ymdhms");
$newDate = strftime("%m.%d.%Y", mktime($time));
echo $newDate;
答案 2 :(得分:0)
只需按照您的日期格式猜测数字是否一致,您就可以手动形成时间戳:
$origDate = "20110112000000.000";
$newDate = date("d.m.Y", mktime(0,0,0,
substr($origDate, 4, 2), // month
substr($origDate, 6, 2), // day
substr($origDate, 0, 4)) // year
);
产生01.12.2011