![](/img/trans.png)
[英]Insert into mysql date time and datetime only by adding date and time
[英]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.