数据库中存储的日期格式错误


Date format wrong stored in the database

我试图在数据库中存储两个日期,但它变成了另一种格式。为了输入日期,我使用dd-mm-yyyy

有人能帮我吗?

谢谢Benny

<?php
if(isset($_POST['newEvent'])) {
    session_start();
    //$eventName = $_POST['SelCatName'];
    $eventSDate = $_POST['Event-StartDate'];
    $eventSTime = $_POST['Event-StartTime'];
    $eventEDate = $_POST['Event-EndDate'];
    $eventETime = $_POST['Event-EndTime'];
    $eventDescription = $_POST['Event-Description'];
    $catIDs = $_POST["SelCatName"];
    $catID = explode("-", $catIDs);

$sql = $con->query("INSERT INTO event (eventName, eventSdate, eventSTime, eventEdate, eventETime, eventDescription, catID)Values('{$catID [1]}', '{$eventSDate}', '{$eventSTime}', '{$eventEDate}', '{$eventETime}', '{$eventDescription}', '{$catID[0]}')");
header('Location: eventOK.php');
}

?>

数据库将以yyyy-mm-dd格式存储日期

因此,您需要使用以下代码将日期更改为该格式

$eventSDate = date('Y-m-d', strtotime($_POST['Event-StartDate']));

提供错误的格式会将"1970-01-01"添加到数据库

在将日期存储到数据库之前:

$eventSDate = date("Y-m-d" , strtotime($_POST['Event-StartDate'])) ;

MySQL以yyyy-mm-dd格式存储日期,以hh:mm:ss 格式存储时间

因此,您必须将您的日期和时间转换为这种格式

$eventSDate = isset($_POST['Event-StartDate']) ? date('Y-m-d', strtotime($_POST['Event-StartDate'])) : '' ;
$eventSTime = isset($_POST['Event-StartTime']) ? date('H:i:s', strtotime($_POST['Event-StartTime'])) : '' ;
$eventEDate = isset($_POST['Event-EndDate']) ? date('Y-m-d', strtotime($_POST['Event-EndDate'])) : '' ;
$eventETime = isset($_POST['Event-EndTime']) ? date('H:i:s', strtotime($_POST['Event-EndTime'])) : '' ;