我在这段代码中遇到了一个问题:
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
function dateImplodeFunction($year, $month, $day){
$array = array($year, $month, $day);
$date = date('Y-m-d', strtotime( implode("-", $array)));
return $date;
}
基于上面的代码,我将创建一个函数,其中有3个输入月、日和年。当我输入这3个变量时,这些变量将传递给这个函数,将这3个参数组合起来,并使用内爆函数根据指定的日期创建一个格式。例如,假设我输入1989年1月10日,它将与1989年1日10日的显示相呼应。
此外,我需要将日期函数和strtotime函数(参考上面的代码)一起用于数据库,将我的日期字段设置为日期数据类型。
这里的问题是,如果我输入10-01-1989,它会返回/dipslays的值01-01-1970,为什么??我发现由于测试的原因,strtotime和内爆函数之间存在冲突。我在谷歌上搜索过,但没有找到。我希望你能帮我。提前谢谢。
抱歉英语不好=p
我只会使用Date Time class
。
$month = '07';
$day = '26';
$year = '2012';
$timezone = new DateTimeZone('America/New_York');
$date = new DateTime( "{$year}-{$month}-{$day}", $timezone );
print $date->format('Y-m-d H:i:s');
# Output: 2012-07-26 00:00:00
http://codepad.org/VxwDHPeU
您应该使用mktime
:
function dateImplodeFunction($year, $month, $day)
{
return date('Y-m-d', mktime(0, 0, 0, $month, $day, $year));
}
此处的mktime文档