Я пытаюсь обновить sql datetime. Я просто хочу обновить время и у меня есть несколько скриптов для substr (). Теперь, когда я обновляю Hrs и min, день (d) получает сброс до 1 в первом редактировании и 0 во втором.
Я использую HTML-таблицу, сгенерированную php и bootstrap-редактируемой для редактирования строк с использованием Js и PHP.
Почему дата возвращается сначала 01, а затем 00 в дБ?
Ex. 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());
}
}
$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']));
Других решений пока нет …