PHP日期返回错误

时间:2013-01-21 04:22:08

标签: php

我从格式化为01/20/13的MySQL数据库中提取日期值我在返回的这个值上调用PHP日期函数来获取它的星期几,所以01/20/13是今天的日期这是周日,但它会在周三恢复价值。我已经包含了下面的代码我是编程的新手,所以这可能是我忽略的一个愚蠢的错误。

<?php

        require '../TimeCard/DB.php';

    try{
    $stmt = $conn->prepare('SELECT `date` FROM `timeRecords` WHERE `employeeID`= 1 ');
    $stmt->execute();
    } catch(PDOException $e){
        echo'ERROR: ' . $e->getMessage();
    }

    while($row = $stmt->fetch())
  {
    echo date("l", $row['date']) . "<br>";
    echo $row['date'] . "<br>";
  }

        ?>

4 个答案:

答案 0 :(得分:1)

Mysql不会将日期存储为m / d / y它将它们存储为Y-m-d你的mysql数据库将转向&#34; 01/20/13&#34;进入了。:

但是,如果您没有使用日期类型,并使用

存储为字符串
strtotime($row['date'])

答案 1 :(得分:1)

在你的mysql存储日期使用strtotime,然后使用日期函数

$day = date('l',strtotime($row['date']));

答案 2 :(得分:1)

尝试使用strtotime()

echo date("l", strtotime($row['date'])) . "<br>";

答案 3 :(得分:1)

PHP的date()函数的第二个参数是整数时间戳。使用DateTime你会有更好的运气,例如

$dt = DateTime::createFromFormat('m/d/y', $row['date']);
echo $dt->format('l');

这为您提供了额外的好处,即定制日期解析器以匹配您的源格式,而不是依赖于strtotime(),这肯定有其怪癖,例如使用正斜线(10/12/13)处理日期为美国(10月12日)vs连字号(10-12-13)为欧盟(12月10日)

此处示例 - http://codepad.viper-7.com/iVXxA1