php日期格式问题

时间:2011-04-28 07:22:00

标签: php

我有代码

$dss='2011 04 28 10:00:45';
echo date('Y', strtotime($dss));

它显示1970-为什么?

4 个答案:

答案 0 :(得分:6)

  

它显示1970-为什么?

因为格式YYYY MM DD HH:MM:SS不是formats that strtotime accepts之一。特别是,它找不到valid date string

如果你使用的是PHP 5.3或更高版本,请查看DateTime::createFromFormat(),它采用date格式的字符串,并根据该格式创建一个新的DateTime对象。

如果您坚持使用较低版本的PHP,那么“最佳”选择就是笨拙strptime

或者你可以在YYYYMM之间,然后在MMDD之间加入破折号,产生YYYY-MM-DD,这是一种完美的格式

答案 1 :(得分:2)

正如查尔斯所说,这不是一个有效的日期格式。这应该重新格式化:

$dss = preg_replace('/^(\d+) (\d+) (.+)$/i', '$1-$2-$3', $dss);

答案 2 :(得分:0)

之前错误的回答......是值得的......我现在正向后爬上驴子,把桶放在我的头上,然后离开小镇。

答案 3 :(得分:0)

似乎你只想要这一年的刺痛。你可以这样做:

$dss='2011 04 28 10:00:45';
echo substr($dss, 0, 5);