2012-03-02 143 views
61

我在將數據正確插入數據庫時​​遇到問題。以日期時間格式插入當前日期mySQL

$date = date('m/d/Y h:i:s', time()); 

我用這個格式,並且,它呼應了正確的,但是,當我插入

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')"); 

它似乎並不順利進行,並且,時間仍然是00:00: 00 如果你能找到解決方案,那就太好了,謝謝。

+0

什麼類型是 「dateposted」 ? – 2012-03-02 22:08:20

+1

Dateposted是日期時間格式。 – CCates 2012-03-02 22:09:06

回答

154

如果你正在尋找存儲當前時間只是使用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')"); 
+16

但它會使用MySQL服務器區域設置/時區。如果U在不同的服務器上有Apache/PHP和MySQL,並且其中一箇中的時區設置不正確,那麼您將擁有不同的值。 – 2013-11-24 17:57:59

+2

@Jeff_Alieffson是對的。使用'UTC_TIMESTAMP()'(https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-timestamp)是優選的,而不是'NOW()' – Ejaz 2016-03-31 17:53:57

1

datetime」 預計的日期將被格式化是這樣的:YYYY-MM-DD HH:MM:SS

所以格式化當你插入你的約會像。

+0

所以我會做日期( 「YYYY/MM/DD HH:MM:SS」,時間());? – CCates 2012-03-02 22:11:39

+0

不是嗎?使用破折號( - )不能斜槓(/)。 – 2012-03-02 22:12:31

+0

好吧,非常感謝。 – CCates 2012-03-02 22:34:17

27

試試這個

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

NOW()用於插入在MySQL表中的當前日期和時間。數據類型爲DATETIME, DATE, TIME & TIMESTAMP的所有字段都適用於此功能。

YYYY-MM-DD HH:MM:SS

示範:

下面的代碼顯示的NOW()

INSERT INTO auto_ins 
(MySQL_Function, DateTime, Date, Time, Year, TimeStamp) 
VALUES 
(「NOW()」, NOW(), NOW(), NOW(), NOW(), NOW()); 
2

的使用情況,您可以使用CURRENT_TIMESTAMP,MySQL的功能

1

type列名爲dateposted的列爲DATETIME並運行以下查詢:

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP) 
0
 <?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"> 

+1

歡迎堆棧溢出!好的答案*解釋*以及提供代碼。考慮更新您的答案,以包含有關此代碼如何工作以及爲什麼這是最佳選項的解釋。 – Ajean 2015-09-25 00:59:11

0

我相信,你需要改變你的代碼有點像你的數據庫歸檔類型旁邊如下。

mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)"); 

希望,將完美工作。

0

如果你從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')"); 

插入日期的dateposted應該是mysql的date類型。或者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')" ; 
-4

試試這個

$('#datepicker2').datepicker('setDate', new Date('<?=$value->fecha_final?>')); 
0

,最好的辦法,使其更容易和高效是這樣的:

CREATE TABLE table_name (
field1, 
.. 
.. 
time_updated timestamp default current_timestamp 
) 

現在,當您插入一行到表格中,你可以跳過這一領域(time_updated)因爲它會與當前時間爲默認值

0

你的時區只需使用填寫:

date_default_timezone_set('Asia/Kolkata');  
$date=date("Y/m/d h:i:sa"); 
-1

使用本

$date = date('m/d/Y h:i:s', time());

,然後在MYSQL 做

type=varchar

然後日期和時間將被成功地插入

+0

您的第一個功能與問題中使用的相同。而這個答案的其餘部分不保證重新開放一個5歲的問題。請解釋您爲什麼認爲您的解決方案比5年前發佈的解決方案更好。 – 2017-10-03 05:37:20

+0

因爲老問題不是數據類型 – 2017-10-03 05:51:40

+0

解釋選擇DATETIME後此功能店0000000所以..... – 2017-10-03 05:53:17