首页 > 解决方案 > date_default_timezone_set() 损坏的时区

问题描述

<?php
    date_default_timezone_set('Europe/Dublin');
    $time = date("H:i a");
    $hour = date("H");
?> 
<?php if($hour >=6 && $hour <12){?>
    <body class="morning">
        <div id="txt1"><h1 id='time'><?= $time?></h1></div>
        <div id='dayMessage'>Good Morning</div>
<?php } elseif($hour >= 12 && $hour <18){?>
    <body class="afternoon">
        <div id="txt1"><h1 id='time'><?= $time?></h1></div>
        <div id='dayMessage'>Good Afternoon</div>
<?php } elseif($hour >= 18 && $hour <0){?>
    <body class="evening">
        <div id="txt1"><h1 id='time'><?= $time?></h1></div>
        <div id='dayMessage'>Good Evening</div>
<?php } elseif($hour >= 0 && $hour <6){?>
    <body class="night">
        <div id="txt1"><h1 id='time'><?= $time?></h1></div>
        <div id='dayMessage'>Good Night</div>
<?php }?> 

使用欧洲时区运行此代码会返回一个空白页,而使用date_default_timezone_set('America/Los_Angeles')返回背景和时间。这是否意味着我的安装有问题或某些时区刚刚损坏?

标签: php

解决方案


这个条件没有意义:

else if($hour >= 18 && $hour <0) ...

没有小于0同时大于18.. 的数字。如果要表示插槽[18-24],只需取消>= 18

else if($hour >= 18) ...

推荐阅读