我有一个基于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();
}
});
任何线索?
答案 0 :(得分: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");
}
}
答案 1 :(得分:0)
问题在于serverdate.getDay();。
Date.getDay();返回0-6天,而不是当天的名字。
和serverdate.getTime(); return总时间的毫秒数。
您应该了解JavaScript中的Date对象
答案 2 :(得分:0)
只需将currentDay
替换为weekday[currentDay]
,因为您要与日期名称进行比较。这对你有用。