Php 奇怪的日期问题

Php 奇怪的日期问题,php,mysql,Php,Mysql,我有一个表单,用户可以在其中输入生日。如果输入1970年之前的日期,例如1964年,则该日期将作为2064保存在数据库中。有人能解释一下发生了什么事吗?谢谢我正在使用以下函数格式化MySQL的日期: function formatdate( $s ) { $date = date_create($s); return date_format($date, 'y-m-d'); } MySQL假设少于70年(如果不是4位数的年份)是21世纪,而不是20世纪。您应将格式设置为4位数年

我有一个表单,用户可以在其中输入生日。如果输入1970年之前的日期,例如1964年,则该日期将作为2064保存在数据库中。有人能解释一下发生了什么事吗?谢谢我正在使用以下函数格式化MySQL的日期:

function formatdate( $s ) {
    $date = date_create($s);
    return date_format($date, 'y-m-d');
}

MySQL假设少于70年(如果不是4位数的年份)是21世纪,而不是20世纪。您应将格式设置为4位数年份,以避免此问题:

return date_format($date, 'Y-m-d');

在格式掩码中使用大写Y返回4位数的年份