PHP-将单独的日,月和年转换为mysql日期格式

时间:2019-12-08 16:57:06

标签: php mysql date

我有一天的值(1-31),一个月的值(1-12)和一年的值,我需要将它们保存为MySQL数据库日期格式。

如何将这些值(与日,月和年相对应的3个整数)转换为日期格式,以将其保存在数据库中?

$day = $request->day;     // day(1-31)
$month = $request->month; // month(1-12)
$year = $request->year;  // year

$date = strtotime("$year-$month-$day"); // how to convert above values to a MySQL **date** format?

1 个答案:

答案 0 :(得分:1)

如果您100%确定三个值,则可以将三个值串联在一起。

$mysqlDate = $request->year.'-'.$request->month.'-'.$request->day;

您可以使用DateTime类来验证整数是否构成有效日期。例如,使用以下代码:

$mysqlDate = (new \DateTime())->setDate($request->year, $request->month, $request->day)->format('Y-m-d');

这将确保该日期是正确的日期,并且在尝试将其输入数据库时​​不会引起MySQL错误。

然后,您可以像下面这样在准备好的语句中简单地使用它:

$pdo->prepare('INSERT INTO someTable(someDateColumn) VALUES(?)')
    ->execute([$mysqlDate]);