php-timeに基づいて正しいグラデーションの色を表示しようとしています。私が試してみると、グラデーションのミスマッチ(I.E.のトップカラーが最初の1時間チャンクと4時間チャンクのボトムカラーが一致します)。PHPの時間ベースのグラデーションの背景
あなたは括弧内の各if
条件の後のステートメントをラップする必要が
<?php
$time = date("H");
if($time >= 06 && $time < 12)
$topcolor = 'black';
$bottomcolor = 'orange';
if($time >= 12 && $time < 18)
$topcolor = 'pink';
$bottomcolor = 'purple';
if($time >= 18 && $time < 24)
$topcolor = 'yellow';
$bottomcolor = 'blue';
if($time >= 24 && $time < 6)
$topcolor = 'red';
$bottomcolor = 'green';
?>
<style>
body {
background: <?php echo $bottomcolor;?>;
background: -webkit-linear-gradient(<?php echo $topcolor;?>, <?php echo $bottomcolor;?>) <?php echo $bottomcolor;?>;
background: -o-linear-gradient(<?php echo $topcolor;?>, <?php echo $bottomcolor;?>) <?php echo $bottomcolor;?>;
background: -moz-linear-gradient(<?php echo $topcolor;?>, <?php echo $bottomcolor;?>) <?php echo $bottomcolor;?>;
background: linear-gradient(<?php echo $topcolor;?>, <?php echo $bottomcolor;?>) <?php echo $bottomcolor;?>;
background-repeat: no-repeat;
}
</style>
があなたの状態のブロックを含むように*。 'if(...){code}'。また、else ifを使うことについて考えるべきです。 – Devon
あなたはいくつかの問題を抱えています.6未満で24より大きいものはありません。 '06 == 6 'の間は、' 016 == 14 'なので整数に0を接頭する習慣に入るべきではありません。 0の接頭辞を付けるときは8進数を使用しています。 – Devon
06から6に変更し、最後の24を0に変更しました。また、各条件に括弧を追加しました。これらの変更でコードが正常に動作すると思いますか?私は<24 to > = 0からの切り替えを心配しています---バックグラウンドスイッチは見えませんか? – Qwerty