Php 在一个日期上加4年,这个程序有什么错?
我正在尝试用南美的日期格式为字符串添加4年。我试过下面的代码:Php 在一个日期上加4年,这个程序有什么错?,php,date,strtotime,Php,Date,Strtotime,我正在尝试用南美的日期格式为字符串添加4年。我试过下面的代码: date_default_timezone_set('America/Sao_Paulo'); $date_string = '10/10/2014'; $date = date_create($date_string); $date_us_string = date_format($date, 'Y-m-d'); $date2_us = strtotime('+4 year', $date_us_string); $date2_s
date_default_timezone_set('America/Sao_Paulo');
$date_string = '10/10/2014';
$date = date_create($date_string);
$date_us_string = date_format($date, 'Y-m-d');
$date2_us = strtotime('+4 year', $date_us_string);
$date2_string = date_format($date2_us, 'd/m/Y');
但它不起作用,我不知道为什么。有人能帮我吗?PHP应该向您显示一个错误。如果没有,则需要打开错误报告。以下是错误: 警告:date_格式要求参数1为DateTimeInterface,给定为null 这是因为该函数仅适用于DateTime对象。您没有在整个代码中使用它们,这会在您走到这一步之前导致更多错误。以下是更简单且始终使用DateTime的工作代码:
$date_string = '10/10/2014';
$date = new DateTime($date_string, new DateTimeZone('America/Sao_Paulo'));
$date->modify('+4 years');
echo $date->format('d/m/Y');
PHP应该向您显示一个错误。如果没有,则需要打开错误报告。以下是错误: 警告:date_格式要求参数1为DateTimeInterface,给定为null 这是因为该函数仅适用于DateTime对象。您没有在整个代码中使用它们,这会在您走到这一步之前导致更多错误。以下是更简单且始终使用DateTime的工作代码:
$date_string = '10/10/2014';
$date = new DateTime($date_string, new DateTimeZone('America/Sao_Paulo'));
$date->modify('+4 years');
echo $date->format('d/m/Y');
出于好奇,这同样有效:
$date_string = '30/10/2014';
$date_string = explode("/", $date_string);
$date_string = date('m/d/Y', mktime(0, 0, 0, $date_string[1], $date_string[0], $date_string[2]) );
function makeDate($date, $days, $mounths, $years){
$date = date('d/m/Y', strtotime($date));
$date = explode("/", $date);
return date('d/m/Y', mktime(0, 0, 0, $date[1] + $mounths, $date[0] + $days, $date[2] + $years) );
}
$dateadded = makeDate($date_string, 0, 0, 4);
echo $dateadded;
出于好奇,这同样有效:
$date_string = '30/10/2014';
$date_string = explode("/", $date_string);
$date_string = date('m/d/Y', mktime(0, 0, 0, $date_string[1], $date_string[0], $date_string[2]) );
function makeDate($date, $days, $mounths, $years){
$date = date('d/m/Y', strtotime($date));
$date = explode("/", $date);
return date('d/m/Y', mktime(0, 0, 0, $date[1] + $mounths, $date[0] + $days, $date[2] + $years) );
}
$dateadded = makeDate($date_string, 0, 0, 4);
echo $dateadded;
你得到了什么?你期望得到什么?我得到了警告:date_格式期望参数1是DateTime,给定整数,我期望一个值为10/10/2018的字符串,所以你应该阅读date_格式的手册。php.net搜索date_格式。您得到了什么?您期望得到什么?我得到了警告:date_格式期望参数1为DateTime,给定整数,我期望值为10/10/2018的字符串,因此您应该阅读date_格式的手册。php.net搜索日期\格式。