Javascript倒计时只在Chrome上运行
我正在制作一个游戏,在我的游戏中,我有一个javascript倒计时脚本,它接收建筑升级结束的日期,并进行倒计时,当倒计时结束时,执行一个脚本,将建筑升级到下一个级别 但它只在谷歌chrome中工作,在其他浏览器中显示如下:Javascript倒计时只在Chrome上运行,javascript,google-chrome,countdown,Javascript,Google Chrome,Countdown,我正在制作一个游戏,在我的游戏中,我有一个javascript倒计时脚本,它接收建筑升级结束的日期,并进行倒计时,当倒计时结束时,执行一个脚本,将建筑升级到下一个级别 但它只在谷歌chrome中工作,在其他浏览器中显示如下: Firefox: 谷歌浏览器 只有Javascript: date_default_timezone_set('europe/lisbon'); $datephp = date('Y-m-d H:i:s'); echo' <script type="te
Firefox: 谷歌浏览器
只有Javascript:
date_default_timezone_set('europe/lisbon');
$datephp = date('Y-m-d H:i:s');
echo'
<script type="text/javascript">
function cdtd() {
var xmas = new Date("' . $factory_date . '");
var now = new Date();
var timeDiff = xmas.getTime() - now.getTime();
if (timeDiff <= 0) {
clearTimeout(timer);
$("#factory_upgrade").load("/include/factory_upgraded.php");
$("#quantidade_fabricas").load("/include/factory_stats.php");
}
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
minutes %= 60;
seconds %= 60;' .
"var tempo=('0' + hours).slice(-2)+':'+('0' + minutes).slice(-2)+':'+('0' + seconds).slice(-2);"
.
'
document.getElementById("secsBox").innerHTML = tempo;
var timer = setTimeout("cdtd()",1000);
}
</script>
';
function factory_update($get){
$userid = $_SESSION['userid'];
$query00 = "SELECT * FROM factory_upgrading WHERE userid = '$userid'";
$result00 = mysql_query($query00) or die(mysql_error());
while($row00 = mysql_fetch_array($result00)){
$factory_upgrade = $row00['userid'];
}
if(!isset($factory_upgrade)){
echo "Sem melhoramentos.";
return 0;
}
$query01 = "SELECT * FROM factory_upgrading WHERE userid = '$userid'";
$result01 = mysql_query($query01) or die(mysql_error());
while($row01 = mysql_fetch_array($result01)){
$factory_level = $row01['new_level'];
$factory_date = $row01['upgraded'];
}
if ($get == "load")
{
echo '<div class="message_upgrades" ">';
echo '<div class="loading"><img src="/images/loading.gif"></img></div>';
echo '</div>';}
else
{
date_default_timezone_set('europe/lisbon');
$datephp = date('Y-m-d H:i:s');
echo'
<script type="text/javascript">
function cdtd() {
var xmas = new Date("' . $factory_date . '");
var now = new Date();
var timeDiff = xmas.getTime() - now.getTime();
if (timeDiff <= 0) {
clearTimeout(timer);
$("#factory_upgrade").load("/include/factory_upgraded.php");
$("#quantidade_fabricas").load("/include/factory_stats.php");
}
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
minutes %= 60;
seconds %= 60;' .
"var tempo=('0' + hours).slice(-2)+':'+('0' + minutes).slice(-2)+':'+('0' + seconds).slice(-2);"
.
'
document.getElementById("secsBox").innerHTML = tempo;
var timer = setTimeout("cdtd()",1000);
}
</script>
';
echo '<div class="success_upgrades">';
echo '<div class="upgrade_text"><b>Nivel: </b>' . $factory_level . '</div><div class="div_separator"></div><div class="upgrade_text"><b>Duração:</b>
<div class="secsBox" id="secsBox"></div>
<script type="text/javascript">cdtd();</script></div><div class="div_separator"></div>
';
echo '<div id="close" class="stop_upgrade" ><a href="#" id="close" ><img src="/icon/x.png"></img></a></div>';
echo '</div>';
echo '<script>
$(".stop_upgrade").click(function (e) {
e.preventDefault();
$(factory_upgrade2).empty();
setTimeout(function(){
$("#factory_upgrade2").load("/include/upgrade_cancel.php");
$("#factory_upgrade").load("/include/factory_update.php");
$("#load").load("/include/cabecalho_content.php");
$("#industrial").fadeIn();
$(loader1).delay(1000).hide(0);
}, 100);
});
</script>
';
}
}
date\u default\u timezone\u set(“欧洲/里斯本”);
$datephp=date('Y-m-dh:i:s');
回声'
函数cdtd(){
var xmas=新日期(“.$factory_Date.”);
var now=新日期();
var timeDiff=xmas.getTime()-now.getTime();
如果(timeDiff根据标准JavaScript,$factory\u date
的格式无效,Chrome恰好能够解析它
为了获得更好的结果,请坚持使用以下Date
构造函数:
new Date();
new Date(value);
new Date(dateString);
new Date(year, month [, day, hour, minute, second, millisecond]);
为什么你要做PHP中的输出,你不能用NOS或JS脚本文件来做吗?我必须把PHP变量放在JavaScript的中间,所以我认为这样更好:一个典型的<代码> $FasyYORDEX看起来像什么?Firefox控制台中的任何错误?它在IE中工作吗?$FasyYyDA的典型结果是什么?可能是因为它的格式不适合浏览器,因为它可能是字符串或整数etcIf变量$factory_date=2013-12-30 22:21:01,我怎样才能为所有浏览器提供良好的格式?请阅读我的文章和我提供的链接。解释了不同的有效dateString
。您可以随时使用任何PHP对象表示提取年/月/日/小时/分钟/秒并使用最后一个构造函数的日期。请注意,在JavaScript中,月参数是基于0的。可能还有一种简单的方法可以在PHP中获取unix历元时间戳,您可以使用它。避免新建日期(dateString)
由于它在浏览器中的实现并不一致,其他浏览器也可以。