用户从前端设置的日期和时间不会存储到数据库中

时间:2021-06-01 作者:Antti

我的应用程序允许用户将日记条目存储到数据库表中。他们可以使用html输入自由设置所需的日期和时间(因此我不能简单地使用当前时间,因为他们可能想在过去创建一个条目)。

我可以将日期和时间作为POST请求发送。标题如下所示:

action: send_daily_event
weight: 
dateAndTime: 2021-06-01 19:08:00
在数据库中,我有一个名为;dailyevents;。它有一列名为;日期和时间“;类型为“;日期时间;。

否则会将数据库条目记录到表中,但对于每个条目,dateAndTime列始终保持0000-00-00 00:00:00。

下面是我的函数的相关部分。php:

function sendDailyEvent(){

    //for storing the logged in user name:
        global $current_user;
        get_currentuserinfo();
        $currUserLoginName = $current_user->user_login;

    $weight = ($_POST["weight"]);

    $dateAndTime = ($_POST["dateAndTime"]);
    
    $sanitizedWeight = sanitize_text_field($weight); /* Checks for problematic things in the string like invalid UTF-8, it converts < characters to entities, strips all tags, removes line breaks, tabs and extra white space. */

    global $wpdb;

    $result_check = $wpdb->insert( 
        \'dailyevents\',
        array(
            \'username\' => $currUserLoginName,
            \'dateAndTime\' => $dateAndTime,
            \'weight\' => $sanitizedWeight,
            
        ),
        array(
            \'%s\', 
            \'%s\', 
            \'%d\', 

        )
    );

    if($result_check){ //return the response
        echo $result_check;
     }else{
       echo "something went wrong";
     }

    exit();

} /* end send daily event */
我的怀疑是,数据库中的datetime列不喜欢我试图给它一个字符串,但我不知道应该如何格式化$dateAndTime变量。

1 个回复
SO网友:Antti

在绑定$dateAndTime字符串之前,将其格式化如下:

$formattedDateAndTime = date("Y-m-d H:i:s", strtotime($dateAndTime));