圣诞节日历的PHP脚本

时间:2015-11-08 20:28:44

标签: php date timezone

我正在为圣诞节日历创建一个PHP脚本,该脚本应该只根据当前(12月)日期加载相应的内容(一些文本和图像)。

例如,在12月1日(基于PHP脚本),只应显示指定的内容。 12月2日,应显示该日/日期的具体内容。

我现在的问题是确保在德国,我们显然有一个不同的时区而不是(对我来说重要的)加拿大温哥华。

如何让脚本使用正确的请求/检查加载时区/日期,在这两个特定时区内,内容始终可见(例如12月1日,其中一个时区)...

2 个答案:

答案 0 :(得分:2)

此答案基于您使用网页显示用户时区的假设。

首先请注意,您无法在PHP中获取用户时区。但你可以做的是通过JavaScript告诉服务器用户日期是什么。

您可以这样做:

var currentdate = new Date();
if(currentdate.getMonth() === 11){ // note that January = 0, Feb = 1 etc. So December = 11
    $.get( "//christmasServer.com/timezone.php?user_day=" + currentdate.getDate(), function( data ) { // send to server, getDate() will show the day, December 14 will just show 14
      $('.Christmas').html( data ); // do something with the data, for example replace the div .Christmas
    });
} else {
    // It's not even december in your timezone :-o
}

timezone.php中,您现在可以确定当天的情况。

另外:
您可以在$_SESSION中设置时区,这样您只需设置一次。

timezone.php

if(!isset($_SESSION['user_timezone'])){ // if timezone isn't set
    session_start(); // start session
    $_SESSION['user_timezone'] = $_GET['user_day'];
}

if($_SESSION['user_timezone']===1){ // if it's the first of December
    echo 'I\'m shown December first';
} else if($_SESSION['user_timezone']===2){ // if it's the second of December
    echo 'I\'m shown December second';
}

// etc...

您现在可以始终使用$_SESSION['user_timezone']来吸引用户'时区。

答案 1 :(得分:0)

更新

在我的index.php中:

WHERE TRY_PARSE(price_col AS FLOAT) IS NOT NULL

稍后在index.php中:

...

<script type="text/javascript">
var currentdate = new Date();

if(currentdate.getMonth() === 10){ // for testing with november (=10)
    $.get( "/timezone.php?user_day=" + currentdate.getDate(), function( data ) { // correct for localhost testing version, so no domain yet?!
      $('.Christmas').html( data ); // do something with the data, for example replace the div .Christmas
    });
} else {
    // It's not even december in your timezone :-o
}
</script>

...

在我的timezone.php(在同一个文件夹中):

<div class="Christmas">
</div>