【问题标题】:PHP / SQL display dates in formatPHP/SQL 以格式显示日期
【发布时间】:2017-04-24 01:56:02
【问题描述】:

在 SQL 数据库中,我以标准 SQL 格式 YYYY-mm-dd 存储各种日期,例如出生日期和他们加入我的系统的日期,但是我希望将这些显示给我的英国用户(我的所有用户)格式为dd-mm-YYYY

我已经尝试了几乎所有我在网上找到的关于这样做的方法,但是无法破译它是如何正确完成的。我在下面列出的代码是我当前使用的代码,但是它不显示存储在数据库中的正确日期,而是使用完全随机的日期01-01-1970。对于解决此问题的一些帮助将不胜感激。

while($row = $results->fetch_assoc()){
                array_push($_SESSION["ActQueue"], array($row["username"], $row["surname"], $row["forename"], date('d-m-Y', $row["dob"]), $row["gender"], $row["joined"]));
}

$data = 0;
echo json_encode(['Username'=>$_SESSION["ActQueue"][0][0], 'Surname'=>$_SESSION["ActQueue"][0][1],'Forename'=>$_SESSION["ActQueue"][0][2],'DoB'=>$_SESSION["ActQueue"][0][3], 'Gender'=>$_SESSION["ActQueue"][0][4], 'Joined'=>$_SESSION["ActQueue"][0][5]]);

【问题讨论】:

    标签: php sql date


    【解决方案1】:

    在传递给date() 函数之前,您需要将纯文本日期转换为时间

    date('d-m-Y', strtotime($row["dob"]))
    

    您收到01-01-1970 的日期不是随机日期,而是来自unix 系统的第一个日期

    【讨论】:

    • 这具有预期的效果,但增加了一个额外的“-”,例如:Date of Birth: 30-11--0001。有什么建议吗?
    • 什么意思?您可以在日期函数中添加所需的任何内容,例如两个减号
    • 它将日期更改为dd-mm-YYYY 格式,但出于某种原因添加了一个额外的“-”,例如30-11--0001
    • 如果在传递到日期函数之前打印,它看起来如何row['dob']
    • strtotime($row["dob"]) 输出-62169984000。 $row["dob"] 输出0000-00-00
    【解决方案2】:

    你需要使用:

    date('d-m-Y', strtotime($row["dob"]))
    

    strtotime

    【讨论】:

      【解决方案3】:

      您可以使用此代码来格式化您的日期

      (new \DateTime($row["dob"]))->format('d-m-Y');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多