簡體   English   中英

使用PHP在MySQL中添加時間和日期到datetime?

[英]adding time and date to datetime in mysql using php?

我正在嘗試使用PHP將日期和時間添加到mysql數據庫的datetime字段中。

我在mysql數據庫中的日期時間存儲如下:

2015-01-20 05:10:17

我試圖像這樣向該字段添加5天:

$Date = date();
$end_date = date("Y, n, j, G, i, s", strtotime($Date. ' + 5 days'));

UPDATE myTable SET end_date='$end_date' WHERE randKey='$id'

但是當我查看數據庫中的更新時,會看到如下的end_date字段:

0000-00-00 00:00:00

這意味着它已被更新,但由於某種原因,一切都已設置為0!

有人可以建議這個問題嗎?

提前致謝。

檢查一下:

$end_date = date("Y-m-d H:i:s", strtotime(date("Y-m-d H:i:s"). ' + 5 days'));

MySql以YYYY-MM-DD HH:MM:SS格式存儲日期時間。

與其嘗試在一個字符串中將五天添加到當前日期,不如將兩個參數用於strtotime會更加容易,因此:

$Date = date();
$end_date = date("Y, n, j, G, i, s", strtotime('+5 days', $Date));

第二個參數指定什么是“當前”時間; 也就是從(開始位置)開始+5天的基礎。 未指定時,默認為time()

首先,您提供的代碼不會將字段值增加5天,而是會增加今天的日期5天。 看,如果您的字段包含2015年1月1日,並且如您所寫,您想向此字段添加5天,則不應在PHP中向date()添加5天,因為它將是2015年1月25日的2015年1月6日。 因此,如果您想在字段值中添加5天,請使用以下命令:

UPDATE myTable SET end_date=DATE_ADD(end_date, INTERVAL 5 DAY) WHERE randKey='$id';

但是,如果要在今天之后添加五天,請使用以下命令:

UPDATE myTable SET end_date=DATE_ADD(CURDATE(), INTERVAL 5 DAY) WHERE randKey='$id';

如果您還關心時間,而不僅僅是日期,請使用NOW()而不是CURDATE()

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM