我刚刚创建了一个函数来添加年|月|日。但是我有一个小问题,有时候我想添加几年,但由于该函数有3个参数(年,月,日),我收到警告:
警告:缺少addDate()的参数2,在第10行的C:\ xampp \ htdocs \ date.php中调用,在第2行的C:\ xampp \ htdocs \ date.php中定义
警告:缺少addDate()的参数3,在第10行的C:\ xampp \ htdocs \ date.php中调用,在第2行的C:\ xampp \ htdocs \ date.php中定义
<?php
function addDate($years, $months, $days)
{
$currentDate = date('Y-m-d');
$newDate = date('Y-m-d', strtotime($currentDate. '+'. $years. ' years +'. $months. ' months +'. $days. ' days'));
echo $newDate;
}
addDate(2);
?>
我试过使用addDate(2,null,null);但它不起作用。
答案 0 :(得分:3)
您可以为参数定义默认值,例如
function addDate($years = 0, $months = 0, $days = 0)
{
在构建字符串之前,最好检查每个是>0
:
$newDateString = '';
if ( $years > 0 ) $newDateString .= " +$years years";
if ( $months > 0 ) $newDateString .= " +$months months";
if ( $days > 0 ) $newDateString .= " +$days days";
$newDate = date('Y-m-d', strtotime( date('Y-m-d') . $newDateString ) );
最后,您(可能)希望使用return
而不是echo()
来传递值 - 稍后允许更多功能:
return $newDate;
并且这样称呼它:
echo addDate( 2 );
功能:
function addDate($years = 0, $months = 0, $days = 0)
{
$newDateString = '';
if ( $years > 0 ) $newDateString .= " +$years years";
if ( $months > 0 ) $newDateString .= " +$months months";
if ( $days > 0 ) $newDateString .= " +$days days";
return date('Y-m-d', strtotime($currentDate . $newDateString ) );
}
答案 1 :(得分:3)
您可以为参数声明默认值:
function addDate($years, $months = 0, $days = 0)
这样您就不需要指定那些或调用您的函数,如'addDate(2,0,0)'