0

我正在从格式化的 MySQL 数据库中提取日期值,因为01/20/13我在返回的值上调用 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

4 回答 4

1

Mysql 不会将日期存储为 m/d/y 它将它们存储为 Ymd 你是 mysql 数据库会将“01/20/13”变成 0000-00-00。

但是,如果您不使用日期类型,并将其存储为字符串,请使用

strtotime($row['date'])
于 2013-01-21T04:23:40.650 回答
1

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

$day = date('l',strtotime($row['date']));
于 2013-01-21T04:23:48.863 回答
1

尝试使用strtotime()

echo date("l", strtotime($row['date'])) . "<br>";
于 2013-01-21T04:24:32.697 回答
1

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

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

这为您提供了额外的好处,即定制日期解析器以匹配您的源格式,而不是依赖于strtotime()哪个肯定有其怪癖,例如将带有正斜杠的日期(13 年 10 月 12 日)视为美国(10 月 12 日)与带有连字符的日期(10-12-13) 作为欧盟 (12 月 10 日)

这里的例子 - http://codepad.viper-7.com/iVXxA1

于 2013-01-21T04:26:02.413 回答