DateTime :: createFromFormat停止运行

时间:2014-11-08 20:14:37

标签: php

我曾经使用此代码在我的网页上显示自动售票日期和时间,但几个月前它刚停止工作并打破了我的整个页面。我有一个我选择的日期" onsale"。如果今天的日期在此之前,则应显示以下内容。有什么想法吗?

        <?php       

            $date = DateTime::createFromFormat('Ymd', get_field('onsale'));
                echo $date->format('D, M d');
                echo get_field('onsale_time');

            } 
            else { echo get_field( 'price' );
            }
        ?>

如果我删除

$date = DateTime::createFromFormat('Ymd', get_field('onsale'));
echo $date->format('D, M d');

它不会打破。我使用的是PHP 5.4.24

以下是整个部分

<?php   $onsale_date = strtotime(get_field('onsale'));
            $now = time();

    if ($onsale_date) { ?>

    <div class="event-ticket-link">

        <div class="cost"> 


        <?php
            if ($onsale_date > $now) {
        ?>  

        On Sale

        <?php       

            $date = DateTime::createFromFormat('Ymd', get_field('onsale'));
                echo $date->format('D, M d');
                echo get_field('onsale_time');

            } 
            else { echo get_field( 'price' );
            }
        ?>

        </div>

        <h4 class="buy-tickets"><a href="<?php the_permalink(); ?>#tickets">Get Tickets</a></h4>

        </div>

        <?php } ?>

1 个答案:

答案 0 :(得分:0)

代码可能停止工作有两个原因:

  • 输入已更改。在你的情况下,get_field('onsale')可能已经改变了。它应该具有“Ymd”格式:检查get_field('onsale')是否类似于YYYYmmdd,例如20141108今天的日期
  • 配置更改:也许您更新了PHP,它现在要求您在使用DateTime系列函数之前设置区域设置,可能是服务器区域设置已更改,...(这样的事情可能会发生,特别是对于日期函数:它们对配置)。