0

index.phpグローバルフッターを含めるために、すべてのファイルで次を使用しています。

<?php include($_SERVER['DOCUMENT_ROOT'].'/_footer.php'); ?>

_footer.php ファイル自体には、現在の年を返す PHP 以外のコンテンツはあまりありません。

    <div class="footer">
        <p id="left">Company Address</p>
        <p id="right">Copyright <?php echo date("Y"); ?> Company Incorporated</p>
    </div>

</div> <!-- end .wrapper -->

</body>
</html>

上記のコードは Web サーバーにアップロードすると機能しますが、私のローカルホスト (Mac OS X with Coda 2) では機能せず、次のエラー メッセージが表示されます。

警告: DATE() [ FUNCTION.DATE ]: システムのタイムゾーン設定に頼るのは安全ではありません。DATE.TIMEZONE設定またはDATE_DEFAULT_TIMEZONE_SET () 関数を使用する必要があります。これらの方法のいずれかを使用しても、まだこの警告が表示される場合は、タイムゾーン ID のスペルを間違えている可能性があります。行3の/USERS/USER/SITES/COMPANY/EXAMPLE.COM/_FOOTER.PHPでは、 「GMT/0.0/NO DST」の代わりに「UTC」 を選択しました

タイムゾーンを設定するかどうかはそれほど問題ではないと思いますが(年のみを表示するように設計された単純な関数であるため)、ローカルでテストするとフッターのデザインが壊れます。

ここに画像の説明を入力

すべてのテキスト (「COPYRIGHT」など) は、黄色いボックス内に表示されます。

この場合、どうすればよいですか?

4

5 に答える 5

6

エラーメッセージを読みましたか? Date.Timezoneシステムのタイムゾーン設定に依存するのは安全ではなく、設定または機能を使用する必要があることを明確に述べていますdate_default_timezone_set()

だから、どちらかをしてください。

a)以下のように変更php.iniします。

 date.timezone=Europe/London

または b) への呼び出しの上date()(またはグローバルに含まれるスクリプト内) でこれを呼び出します。

date_default_timezone_set('Europe/London');

明らかに、Europe/Londonここでリストが入手可能な実際のタイムゾーン識別子に置き換える必要があります: http://php.net/manual/en/timezones.php

サーバーに表示されない場合は、いずれかdisplay_errorsが無効になっているか、エラー報告レベルが開発マシンよりも低いためです。

于 2012-12-20T13:50:07.927 に答える
1
  1. エラーが PHP でどのように機能するかを読んで理解してください: http://php.net/manual/en/function.error-reporting.php。ページに表示することを含まず、ファイルに送信するエラーの方法を自分で作成します。

  2. 警告に従って問題を解決してください: http://php.net/manual/en/function.date-default-timezone-set.phpを参照してください。

  3. 粗雑にしたい場合@は、警告を生成する呼び出しの前に を置きます。エラー/警告を抑制します。

于 2012-12-20T13:50:38.527 に答える
1

この方法で問題を解決するために、HTMLを「裏返し」にします。

<?php
   date_default_timezone_set('America/Chicago');
   $displayDate = date("Y");
   print <<<HERE
     <div class="footer">
        <p id="left">Company Address</p>
        <p id="right">Copyright $displayDate Company Incorporated</p>
     </div>
HERE;
?>

日付テキストをセットアップして「ちょうどいい」ものにするために、より複雑なことを行うことができます。

于 2012-12-20T13:57:00.887 に答える
0

設定date_default_timezone_set

http://php.net/manual/en/function.date-default-timezone-set.php

于 2012-12-20T13:49:17.963 に答える
0

php.ini date.timezoneでデフォルトのタイムゾーンを設定してください

eg: date.timezone =  = America/Los_Angeles 
于 2012-12-20T13:50:48.163 に答える