【问题标题】:PHP/mysql:Get correct year in php 5.3PHP/mysql:在 php 5.3 中获取正确的年份
【发布时间】:2015-12-22 11:13:32
【问题描述】:

我的主机从 PHP 5.2 更新到 PHP 5.3,我的日期代码不再返回诸如 2015 之类的年份,而是返回一个减号 -1。

Wednesday November 30, 2015 

变成了

Wednesday November 30, -1

这显然是因为date 命令发生了变化。尽管尝试了很多选项,但我无法正确显示它

这是我曾经工作的代码,现在给出了 -1 的年份。

function fulldatetime($datetime) {
$fullDate = strtotime($datetime);
$fullDate = date("l F jS, o, g:i A",$fullDate);
return $fullDate;
}

$datetime 的格式为:2015-12-28 23:00:00

谁能向我解释正确的代码以正确显示年份。

提前感谢您帮助我解决这个棘手的问题。

【问题讨论】:

  • 为我工作3v4l.org/UTdBc
  • 在 php 5.4.45 上尝试过,输出为:Monday December 28th, 2015, 11:00 PM。请检查您实际上在函数fulldatetime 的参数中使用了格式正确的输入。我还要补充一点,今天有更好的库来操纵日期,例如[DateTime()](http://php.net/manual/en/class.datetime.php)
  • $fullDate = strtotime($datetime); 的结果是什么?
  • PHP 5.5.15 为我工作。
  • 使用 PHP 5.3.29 为我工作。

标签: php date strtotime


【解决方案1】:

使用 'Y' 而不是 'o' ? : date("l F jS, Y, g:i A",$fullDate);

通过http://php.net/manual/en/function.date.php

【讨论】:

    【解决方案2】:

    这里是一个使用不太新的日期库 OOP DateTime() 的替代方法。这是函数:

    <?php
        function fulldatetime($datetime)
        {
            return (new DateTime($datetime))->format("l M d, Y");       
        }
    
        printf(fulldatetime("2015-12-28 23:00:00"));
    ?>
    

    你可以使用Viper-7,这是一个编译PhP代码的在线网站。

    格式说明:

    • l : 完整的星期几
    • M : 完整的月份编号
    • d : 月份中的第几天
    • Y : 4 位数字格式的年份

    【讨论】:

    • 日期为 0000-00-00 00:00:00 时会出现问题。我想我可以通过从不将日期设置为该值来修复它,但它曾经可以正常工作。
    猜你喜欢
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多