我正在使用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
提前致谢
答案 0 :(得分:2)
默认情况下,MySQL将其日期返回为'yyyy-mm-dd hh:mm:ss'字符串。您可能在PHP中将此字符串直接传递给date()
,这是不正确的。 date()需要一个时间戳(自1970年1月1日以来的秒数)。由于您传递的是无效日期,因此默认为时间戳0,即1970年1月。
您可以强制MySQL使用SELECT UNIX_TIMESTAMP(yourdatefield)
返回适合PHP使用的时间戳。但是,请记住,MySQL完全有能力在查询中进行日期数学运算。
答案 1 :(得分:1)
只要$ result ['startDate']是一个日期类型列,并且你的PHP版本大于5.0.2,你就是在寻找:
$startDate = $result['startDate'];
$date=date('Y-m-d',strtotime($startDate. ' +1 day'));
echo $date;
答案 2 :(得分:1)
如果startDate
为datetime
类型,并且您想在php上使用date
函数,则需要将查询更改为:
SELECT UNIX_TIMESTAMP(startDate) as startDate .....
答案 3 :(得分:1)
如果$result['startDate']
是MySQL日期(或日期时间),则以下内容将起作用:
$startDate = $result['startDate'];
$date=date('Y-m-d',strtotime('+1 day', $startDate));
echo $date;