Вставить текущую дату в формате datetime mySQL
у меня возникли проблемы с получением даты, правильно вставленной в мою базу данных.
$date = date('m/d/Y h:i:s', time());
Я использую этот формат, и он повторяет правильно, но когда я вставляю
mysql_query("INSERT INTO table
(dateposted)
VALUES ('$date')");
он не работает успешно, и, время остается 00: 00:00 Если бы вы могли найти решение, которое было бы здорово, спасибо.
13 ответов:
Если вы хотите сохранить текущее время, просто используйте функции MYSQL.
mysql_query("INSERT INTO `table` (`dateposted`) VALUES (now())");
Если вам нужно использовать PHP, чтобы сделать это, формат его
Y-m-d H:i:s
так попробуй$date = date('Y-m-d H:i:s'); mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')");
NOW()
используется для вставки текущей даты и времени в таблицу MySQL. Все поля с типами данныхDATETIME, DATE, TIME & TIMESTAMP
хорошо работать с этой функцией.гггг-ММ-ДД чч: мм: СС
демонстрация:
следующий код показывает использование
NOW()
INSERT INTO auto_ins (MySQL_Function, DateTime, Date, Time, Year, TimeStamp) VALUES (“NOW()”, NOW(), NOW(), NOW(), NOW(), NOW());
" datetime " ожидает, что дата будет сформирована следующим образом:гггг-ММ-ДД чч:мм: СС
Так форматировать дату, как это, когда вы вставляете.
установить
type
в графеdateposted
какDATETIME
и выполните следующий запрос:INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP)
<?php $date= date("Y-m-d"); $time=date("H:m"); $datetime=$date."T".$time; mysql_query(INSERT INTO table (`dateposted`) VALUES ($datetime)); ?> <form action="form.php" method="get"> <input type="datetime-local" name="date" value="<?php echo $datetime; ?>"> <input type="submit" name="submit" value="submit">
Я считаю, что вам нужно немного изменить свой код, как показано ниже, вместе с типом файла базы данных.
mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)");
надеюсь, будет работать отлично.
если вы передаете дату из PHP, вы можете использовать любой формат, используя
STR_TO_DATE()
функция mysql . Пусть conseder вы вставляете дату через html-форму$Tdate = "'".$_POST["Tdate"]."'" ; // 10/04/2016 $Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y')" ; mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$Tdate')");
The
dateposted
должен быть mysqldate
тип . или mysql добавит 00: 00: 00
в некоторых случаях вы лучше вставить дату и время вместе в БД, так что вы можете сделать расчет с часами и секундами . () .$Tdate=date('Y/m/d H:i:s') ; // this to get current date as text . $Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y %H:%i:%s')" ;
лучший способ сделать его проще и эффективнее это:
CREATE TABLE table_name ( field1, .. .. time_updated timestamp default current_timestamp )
теперь, когда вы вставляете строку в таблице, вы можете пропустить это поле (
time_updated
) как он будет заполняться с текущим временем в качестве значения по умолчанию
просто используйте с вашим часовым поясом:
date_default_timezone_set('Asia/Kolkata'); $date=date("Y/m/d h:i:sa");