这是我的计划:
$newEndingDate = strtotime(date("Y-m-d", strtotime($row['startdate']))."+1 year");
echo $newEndingDate;
这是我的错误
1332441000
是什么错误
答案 0 :(得分:3)
strtotime()
函数返回UNIX Timestamp:自1970-01-01以来的秒数。
您获得的数字不是错误:它只是意味着自1970年以来已经过了1332441000秒。
如有必要,您可以使用date()
函数格式化该时间戳,以获得看起来更加用户友好的字符串。
例如:
echo date('Y-m-d H:i:s', $newEndingDate);
应该会得到以下结果:
2012-03-22 19:30:00
答案 1 :(得分:2)
尝试使用mktime做你想做的事。假设$row['startdate'] == '2011-01-01'
$mydate = strtotime($row['startdate']);
$newEndingDate = mktime(date("H", $mydate), date("i", $mydate), date("s", $mydate), date("n", $mydate), date("j", $mydate), date("Y", $mydate) + 1);
echo date('Y-m-d', $newEndingDate); //2012-01-01
您正在做的事情不会给您带来的结果,因为您无法执行以下操作:
strotime('2011-01-01+1 year');
请改为尝试:
$mydate = strtotime($row['startdate']);
$newEndingDate = date('Y-m-d', strtotime("+1 year", $mydate));
echo $newEndingDate; //2012-01-01
答案 2 :(得分:0)
它是strtotime函数的返回值,它是一个UNIX时间戳。从1970年1月1日开始的秒数
我认为这是你想要的:
$newEndingDate = date('Y-m-d', strtotime('+ 1 year', strtotime($row['startdate'])));
答案 3 :(得分:0)
你没有收到错误,你得到自1970/01/01以来所有秒数的时间戳
如果您需要可读格式,请尝试:
$date = date("Y-m-d H:i:s", $newEndingDate);