我正在用mktime做一些事情,我需要添加30天以上的下一个日期,但是它返回我1970-01-30日期,我做错了什么?
$strtime=strtotime("2013-10-04");
$fecha=date("Y-m-d",$strtime);
echo $fecha."<br />";
$nueva_fecha=mktime(0,0,0,date("n",$fecha),date("j",$fecha)+30,date("Y",$fecha));
echo date("Y-m-d",$nueva_fecha)."<br />";
结果:
2013-10-04
1970年1月30日
答案 0 :(得分:2)
Date正在查找时间戳,因为它是第二个参数,而不是表示此值的字符串值。更新为传递$ strtime。
$strtime=strtotime("2013-10-04");
$fecha=date("Y-m-d",$strtime); // <-- Unnecessary unless you want to echo the value.
echo $fecha."<br />";
$nueva_fecha=mktime(0,0,0,date("n",$strtime),date("j",$strtime)+30,date("Y",$strtime));
echo date("Y-m-d",$nueva_fecha)."<br />";
输出:
2013年10月4日
2013年11月3日
答案 1 :(得分:2)
您可以使用以下功能将30天添加到您输入的日期:
$date = strtotime("2013-10-04");
$new_date = strtotime("+30 days", $date);
或仅仅是当前日期:
$new_date = strototime("+30 days", time());
答案 2 :(得分:1)
如果你已经有strtotime,为什么加上date
?相反,你可以使用+(30天几秒)或只是他们为你提供的功能+ 1 day
检查答案:adding one day to a date
strtotime('2013-10-04 + 30 days');
这将打印2013-11-03
:
date('Y-m-d', strtotime('2013-10-04 + 30 days'))
答案 3 :(得分:1)
你可以试试这个:
echo strtotime(“+ 1天”),“\ n”;
echo strtotime(“+ 30天”,strtotime(日期('D,d M Y'))),“\ n”;
这将在当前日期增加30天。
此外,strtotime非常有用,您可以每周,每月和每年使用它。
答案 4 :(得分:0)
您也可以使用
<?php
$date = date("Y/m/d"); // example date in yyyy/mm/dd format
$unix_time = strtotime( $date ); // covert date to unix time
$sec_in_30_days = 60 * 60 * 24 * 30; // 60 seconds * 60 minutes * 24 hours * 30 days
$new_unix_time = $unix_time + $sec_in_30_days; // add 30 days to unix time
$date_in_30_days = date( 'Y/m/d', $new_unix_time ); // convert new unix time to date
// Output results:
echo 'original current date: ' . $date . '<br />';
echo '<br />';
echo 'new date: ' . $date_in_30_days . '<br />';
?>
输出
原始当前日期:2013/10/04
新约会:2013/11/03