【问题标题】:strtotime always returning 1st januarystrtotime 总是在 1 月 1 日返回
【发布时间】:2013-11-29 00:28:00
【问题描述】:

试图在我的 cms 帖子旁边添加一个基本时间戳,但 strtotime 给我带来了问题。

所以我有这个:

$postDate = $row['date'];
$written_month = date("F", strtotime($postDate));
$short_month = substr($written_month, 0, 3);
$day_number = date("j", strtotime($postDate));

echo '
    <div id="postTimeStamp">
    <div id="postTimeStamp_day">
    '.$day_number.'
    </div>

    <div id="postTimeStamp_month">
    '.$short_month.'
    </div>
    </div>
';

我不知道为什么,但日期总是第一天,月份是一月。

如果我这样做了

     $echo $postDate;

它正确显示了数据。

在数据库中,日期存储为例如2013 年 10 月 12 日。

我哪里错了?

克雷格。

【问题讨论】:

  • 预期输出是什么?还有很多已经被问到和回答过的 php/date 问题。你可以看看他们。
  • $day_number 应该是 10,$short month 应该是 dec。这根据日期示例。它的工作原理是给出一天和一个月。但总是显示 1 - jan 而不是存储在数据库中的日期
  • var_dump($row['date']); 的输出是什么?

标签: php database date strtotime


【解决方案1】:

2013 年 10 月 12 日的日期不明确。在美国它意味着 2013 年 10 月 12 日,在英国它意味着 2013 年 12 月 10 日。我确信 MySQL 永远不会以这种格式返回日期值,所以我认为您的主要问题是您使用的是 TEXT 或 VARCHAR 值将日期存储在数据库中。不要那样做。

另外,两次调用strtotime() 有点多余,如果您想要一个三个字母的月份,请在strtotime() 调用中使用“M”。试试这个:

list($month,$day)=explode(' ',date('M j',strtotime('2013-10-12')));

【讨论】:

    【解决方案2】:

    我在这里尝试了您的代码并且它工作正常:

    $postDate = '12/12/2012';
    $written_month = date("F", strtotime($postDate));
    $short_month = substr($written_month, 0, 3);
    $day_number = date("j", strtotime($postDate));
    
    echo '
        <div id="postTimeStamp">
        <div id="postTimeStamp_day">
        '.$day_number.'
        </div>
    
        <div id="postTimeStamp_month">
        '.$short_month.'
        </div>
        </div>
    ';
    

    确保 $row['date'];实际上是一个字符串,并且是 strtotime (http://www.php.net/manual/de/datetime.formats.date.php) 支持的格式。

    【讨论】:

      【解决方案3】:

      我测试了一种不同的格式,所以用 d-m-y 而不是 d/m/y 并且效果很好。

      不知道为什么,但是嘿嘿:)

      【讨论】:

        猜你喜欢
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-21
        • 2019-10-10
        相关资源
        最近更新 更多