【问题标题】:JavaScript live clock is not runningJavaScript 实时时钟未运行
【发布时间】:2020-12-21 19:40:30
【问题描述】:

php 在传入 javascript 时拆分变量问题或运行实时时钟的逻辑有问题,任何帮助将不胜感激,指导我哪里错了?

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function show(){
    var hours= '<?php echo $splits[0];?>';
    var minutes= '<?php echo $splits[1];?>';
    var seconds= '<?php echo $splits[2];?>';
    var dn="AM" 
    if (hours>12){
        dn="PM"
        hours=hours-12
        //this is so the hours written out is in 12-hour format, instead of the default //24-hour format.
    }
    if (hours==0)
        hours=12
    //this is so the hours written out when hours=0 (meaning 12a.m) is 12
    if (minutes<=9)
        minutes="0"+minutes
    if (seconds<=9)
        seconds="0"+seconds
    document.getElementById("demo").innerHTML=
    hours+":"+minutes+":"+seconds+" "+dn
    setTimeout("show()",1000);
}
</script>
</head>
<body onload="show()">
<?php
$date = new DateTime("now", new DateTimeZone('Asia/Kolkata') );
$duration = $date->format("H:i:s");
$splits =  explode(":",$duration);
settype($splits[0], "integer");
settype($splits[1], "integer");
settype($splits[2], "integer"); 
?>
<p id="demo"></p>
<h1 id="demo1"></h1>
</body>
</html>

【问题讨论】:

  • 看来您没有足够早地定义$splits。 PHP 在您的方法中是程序化的,因此必须在使用前定义所有内容。

标签: javascript php clock live


【解决方案1】:

在这种情况下,您可以使用原生 JavaScript:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function show(){
    var timer = new Date().
      toLocaleString('en-US', { timeZone: 'Asia/Kolkata' })
      .split(',')[1]
      .trim();
    document.getElementById("demo").innerHTML = timer
    setTimeout("show()",1000);
}
</script>
</head>
<body onload="show()">
<p id="demo"></p>
</body>
</html>

【讨论】:

  • 如果有人想用纬度和经度做同样的事情,我们怎么做?我们知道经纬度
  • 我建议您发布有关此的新问题。诸如“如何通过纬度和经度获取时区”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 1970-01-01
相关资源
最近更新 更多