我有一天的值(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?
答案 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]);