我有代码
$dss='2011 04 28 10:00:45';
echo date('Y', strtotime($dss));
它显示1970-为什么?
答案 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
。
或者你可以在YYYY
和MM
之间,然后在MM
和DD
之间加入破折号,产生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);