簡體   English   中英

使用PHP格式化日期並添加或減去來自MySQL的日期的天數

[英]format date and add or subtract number of days in date coming from mysql using php

我正在使用mysql和php,目前我的數據庫中有日期和時間,但是當我使用sql獲取日期時,無論什么日期,我都會繼續獲取1970-01-01,但是如果我嘗試添加運氣的話! 誰能指導我

 $startDate = $result['startDate'];
 $date=date('Y-m-d',$startDate);
 echo $date;

它應該類似於01-07-2011。 但是我也沒有嘗試過strtotime()。 但是它沒有幫助。 誰能幫我 。

 $date = strtotime(date("Y-m-d", strtotime($startDate)) . " +1 day");
 echo $date;

答案應該是2011-07-02,但應該是1970-01-02

提前致謝

MySQL默認以“ yyyy-mm-dd hh:mm:ss”字符串返回其日期。 您可能將此字符串直接傳遞到PHP中的date()中,這是不正確的。 date()需要時間戳(自1970年1月1日以來的秒數)。 由於您傳遞的日期無效,因此默認為時間戳0,也就是1970年1月。

您可以使用SELECT UNIX_TIMESTAMP(yourdatefield)強制MySQL返回適合PHP使用的時間戳。 但是,請記住,MySQL完全能夠在查詢中執行日期數學運算。

只要$ result ['startDate']是日期類型列,並且您使用的PHP版本大於5.0.2,就在尋找:

 $startDate = $result['startDate'];
 $date=date('Y-m-d',strtotime($startDate. ' +1 day'));
 echo $date;

如果startDatedatetime類型,並且要在php上使用date函數,則需要將查詢更改為:

SELECT UNIX_TIMESTAMP(startDate) as startDate .....

如果$result['startDate']是MySQL日期(或DateTime),則可以使用以下命令:

$startDate = $result['startDate'];
$date=date('Y-m-d',strtotime('+1 day', $startDate));
echo $date;

暫無
暫無

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

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