2014-01-27 2 views
1

У меня есть база данных, в которую люди отправляют сообщения и вставляются сообщения.Как отформатировать DATETIME для вставки базы данных?

Я хочу также ввести дату и время в базе данных, используя тип столбца DATETIME. Как мне это сделать, используя функцию date()?

+0

Возможно, вы захотите использовать [gmdate] (http://us1.php.net/gmdate), а не 'date', таким образом вы можете быть уверены, что дата, с которой вы работаете, - это UTC. Это упростит вам работу с различиями в часовых поясах среди ваших пользователей. –

ответ

5

Начиная с MySQL docs

типа DATETIME используется для значений, которые содержат как дату и время детали. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД» Формат ЧЧ: ММ: СС. Поддерживаемый диапазон: «1000-01-01 00:00:00» до '9999-12-31 23:59:59'.

Так что в PHP вам просто нужно использовать функцию date

$datetime = date('Y-m-d H:i:s'); 

echo datetime; // display example: 2014-01-27 17:21:34 
2

Различные способы времени формат даты PHP

<?php 
#The two example outputs are based on this time 
#eg1: 2010-06-19 15:09:35 
#eg2: 2010-06-19 08:30:59 

echo date("Y-m-d"); 
#Output eg1: 2010-06-19 
#Output eg2: 2010-06-19 

echo date("n/j/y"); 
#Output eg1: 6/19/10 
#Output eg2: 6/19/10 

echo date("Y-m-d H:i:s"); 
#Output eg1: 2010-06-19 15:09:35 
#Output eg2: 2010-06-19 08:30:59 

echo date("l, jS F Y h:i a"); 
#Output eg1: Saturday, 19th June 2010 03:09 pm 
#Output eg2: Saturday, 19th June 2010 08:30 am 

echo date("jS M y g:i A"); 
#Output eg1: 19th Jun 10 3:09 PM 
#Output eg2: 19th Jun 10 8:30 AM 

echo date("D, j M Y G:i:s"); 
#Output eg1: Sat, 19 Jun 2010 15:09:35 
#Output eg2: Sat, 19 Jun 2010 8:30:59 

Кредит nazly

+1

И какой из них подходит для вставки в базу данных? –

+0

дорогой, это зависит от вашего бизнес-домена и функциональности –

+0

@Cobra_Fast, я в основном использовал дату эха («Y-m-d H: i: s»); –

2

Делать это может решить вашу озабоченность:

date('Y-m-d H:i:s');

Вы также можете установить DATETIME колонку, чтобы иметь по умолчанию CURRENT_TIMESTAMP.

2

Здесь:

$my_date = date("Y-m-d H:i:s"); 
INSERT INTO my_table (date_time) VALUES ('$my_date'); 

php DateTime

2

Если вы хотите, чтобы вставить текущее время, вам не нужно PHP date() (и выяснить правильный формат строки) - просто использовать MySQL NOW():

INSERT INTO mytable (insert_time) VALUES (NOW()); 
+0

Что делать, если я хочу вставить произвольную дату, кроме как прямо сейчас? –

+0

Этот ответ, вероятно, должен сопровождаться «** Если ** вы хотите вставить текущее время, не используйте PHP' date() '...", в противном случае используйте 'date()', как другие предложили – Bojangles

+0

@ Cobra_Fast OP явно хочет * записывать дату и время [при вставке сообщений] в базу данных * –

Смежные вопросы