繁体   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