javascript - JavaScript 实时时钟未运行
问题描述
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>
解决方案
在这种情况下,您可以使用 vanilla 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>
推荐阅读
- angular - 在 Angular.io 项目中加载 worker pdf.woker.js 的正确方法,
- date - Yii2 掩码输入日期时间,dd-mm-yyyy hh:mm
- unix - 无法在 oracle 中解析 CRLF 文件
- c++ - C++2a 合约编程和编译器
- javascript - 将文本标签添加到 d3 节点此弯曲力布局
- python-3.x - Python Flask 分页错误:分页页面返回 404
- c++ - 使用类指针作为模板参数?
- javascript - 如何确保从 Web 服务下载完整的数据
- thymeleaf - 自定义 url 的 Thymeleaf url 格式
- windows - 我在一个文件夹中有多个文件,我想使用 cmd 从特定位置编辑文件名