0

我有一个基于 Apache 的服务器,它目前托管我的 PHP + HTML5 应用程序。我编写了一个 jquery 脚本,如果满足有关服务器时间的某些条件,它应该更改特定 div 的背景图像。问题是 - 脚本不工作:)

我已经在这里解决了一些问题,并尝试修复脚本,但这些都没有帮助,因为它们与我的问题并不完全相关。

好的,这是脚本:

$(document).ready(function () {

var serverdate = new Date("<?php echo date('l,g,i,s'); ?>");
var currentTime = serverdate.getTime();
var gameTime = getTimeFromString("8:45 pm");
var endTime = getTimeFromString("11:45 pm");
var currentDay = serverdate.getDay();
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
    if (currentDay === "Tuesday" || currentDay ==="Wednesday"){
    if (currentTime<gameTime) {
    $('#bodymain').addClass('day').removeClass('game');
    }

else if (currentTime>endTime) {
    $('#bodymain').addClass('day').removeClass('game');
}

else {
    $('#bodymain').addClass('game').removeClass('day');
}
}
else {
$('#bodymain').addClass('day').removeClass('game');
}

function getTimeFromString(timeString){
var theTime = new Date();
var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?)/);
theTime.setHours(parseInt(time[1])+(time[3]?12:0));
theTime.setMinutes(parseInt(time[2]) || 0);
return theTime.getTime();
}

});

有什么线索吗?

4

3 回答 3

1

根据您的输入,我决定使用不同的方法。现在一切都完美无缺。这是最终的解决方案(我不得不等到我能回答我自己的问题):

PHP 文件:

 <?php
$current_time = strtotime('now');
if ($current_time > strtotime('tuesday this week 8:45pm') && $current_time < strtotime('tuesday this week 11:45pm')) {
 $background = 1;
}
else if ($current_time > strtotime('wednesday this week 8:45pm') && $current_time < strtotime('wednesday this week 11:45pm')) {
 $background = 1;
}
else{
$background = 0;
}

?>

<script>
var backday = <?php echo json_encode($background); ?>;
</script>

JS 文件:

$(document).ready(function () {
createBackground()

});

function createBackground(){

if (backday === 0) {
$('#bodymain').addClass('day').removeClass('game');
}
else if (backday === 1) {
$('#bodymain').addClass('game').removeClass('day');
}
else {
alert("Background error");

}
}
于 2012-09-08T07:47:15.330 回答
0

问题在于serverdate.getDay(); .

日期.getDay(); 返回 0-6 天数,而不是天的名称。

和 serverdate.getTime(); 返回总时间的毫秒数。

您应该了解JavaScript 中的日期对象

于 2012-09-07T10:37:31.013 回答
0

只需替换currentDay为,weekday[currentDay]因为您与日期名称进行比较。这对你有用。

于 2012-09-07T10:58:18.893 回答