0

現在、PHP + HTML5 アプリをホストしている Apache ベースのサーバーがあります。サーバー時間に関するいくつかの条件が満たされた場合、特定のdivの背景画像を変更するjqueryスクリプトを作成しました。問題は-スクリプトが機能していないことです:)

ここですでにいくつかの問題を修正し、スクリプトを修正しようとしましたが、問題とは完全に関連していないため、それらは役に立ちませんでした。

わかりました、ここにスクリプトがあります:

$(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()にあります。

Date.getDay(); 曜日の名前ではなく、0〜6日の数値を返します。

そしてserverdate.getTime(); 合計時間のミリ秒数を返します。

JavaScriptの日付オブジェクトについて学ぶ必要があります

于 2012-09-07T10:37:31.013 に答える
0

currentDay曜日名と比較するweekday[currentDay]ので、 に置き換えるだけです。これはあなたのために働くでしょう。

于 2012-09-07T10:58:18.893 に答える