使用Bootstrap-Editable时,日期时间更新出错

时间:2015-02-23 13:55:35

标签: php html mysql datetime x-editable

我正在尝试更新sql datetime。我只是更新时间并为substr()编写一些脚本。现在当我更新小时和分钟时(d)在第一次编辑中重置为1,在第二次编辑中重置为0.

我使用php生成的html表和bootstrap-editable来使用Js和PHP编辑行。

为什么日期在db?中返回01,然后返回00?

实施例。 2012-02-23 00:00:00在第一次更新中成为2012-02-01 00:00:00。

HTML

<a href='#' id='".$row['id']."' class='usr_stamp_out' data-name='usr_stamp_out' data-type='text' data-pk='".$row['id']."' data-url='php/time.php' data-title='Stämpla ut..'>".substr($row['usr_stamp_out'],11,5)."</a>

PHP

$id = $_POST['pk'];
$updated_usr_stamp_out = $_POST['value'];

if($row){
    //Substring datetime to 0000-00-00
    $usr_stamp_out_date = substr($row['usr_stamp_out'],0,9);

    //Add old date to updated time
    $new_usr_stamp_out = $usr_stamp_out_date." ".$updated_usr_stamp_out;

    //Prepare query
    $query = "UPDATE table SET usr_stamp_out = :usr_stamp_out WHERE id = :id";

    // Security measures
    $query_params = array(':id' => $id,':usr_stamp_out' => $new_usr_stamp_out);

    //Connect and execute
    try {  
        $stmt = $db->prepare($query); 
        $result = $stmt->execute($query_params); 
    } 
    catch(PDOException $ex){
        die("Failed to run query: " . $ex->getMessage());
    }
}

1 个答案:

答案 0 :(得分:0)

$usr_stamp_out_date = substr($row['usr_stamp_out'],0,9);只获取日期的前九个字符,而不是获得正确日期所需的十个字符。

$usr_stamp_out_date = substr($row['usr_stamp_out'],0,10);

另一种方法是使用PHP的日期功能来获取日期:

$usr_stamp_out_date = date('Y-m-d', strtotime($row['usr_stamp_out']));