从PHP获取时间并通过JavaScript进行更新
get time from php and update by javascript
我想第一次从服务器获取时间,然后每秒通过JavaScript更新它。这是我的代码:
setInterval(function() {
var myvar = '<?php echo strtotime($now); ?>'
var hours = myvar.getHours();
var minutes = "0" + myvar.getMinutes();
var seconds = "0" + myvar.getSeconds();
myvar=hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
document.getElementById("time").innerHTML=myvar;
}, 1000);
但它在第二行有错误。错误是"myvar 不是构造函数"。那我该怎么做呢?
第一个问题是你的PHP正在回显一个整数并将myvar
设置为该整数。 整数没有getMinutes
,getHours
...功能。请改用Date
对象。
第二个问题是你的函数并没有真正提前时间,因为每次迭代,myvar
都会重置为初始值(PHP echo 只运行一次,在浏览器下载页面之前)。您需要的是myvar
每次都保持正确的时间。
第三个问题是您正在使用只运行一次的setTimeout
。相反,您应该使用每秒运行一次的setInterval
。
解决方案是在函数外设置一个start
时间,然后递增它并每轮使用它:
//PHP will set the start time
var start = <?=time()?>;
setInterval(function(){
//add 1 second and set myvar to the correct current time
start++;
var myvar = new Date(start * 1000);
...
},1000);
您可能需要进行一些小的调整,因为从 PHP 写入 start
值到在浏览器中加载和运行 JavaScript 之间会经过一些时间。这将使JS时间滞后于服务器时间。
现场演示
你可以只对javascript date使用.getHours(),.getMinutes()函数,而不是phpdate。您可以使用的一种方法是:
setInterval(function() {
var myvar = new Date();
var hours = myvar.getHours();
var minutes = "0" + myvar.getMinutes();
var seconds = "0" + myvar.getSeconds();
myvar=hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
document.getElementById("time").innerHTML=myvar;
}, 1000);
如果您使用 PHP,则无法更新时间
strtotime
返回一个表示当前时间的整数。
您将其作为字符串存储在变量中。
您编译的 php 文件将如下所示:
setInterval(function() {
var myvar = '1468845612'
myvar
只是一根普通的绳子,在那里。该字符串没有.getHours
函数。
将该var myvar
行替换为以下内容:
var myvar = new Date(<?php echo strtotime($now); ?>000);
渲染输出:
var myvar = new Date(1468845612000);
请注意我是如何添加000
的。
strtotime
返回以秒为单位的时间戳。JavaScript 的 Date
构造函数期望时间戳以毫秒为单位。
综上所述,setInterval
呼吁毫无意义。
php 代码段只会在页面加载时运行一次。然后,间隔将每秒显示相同的日期。
- Javascript更新孙窗口中的表单元素
- 使用Javascript更新输入框中的文本
- 从angularjs中的javascript更新dom
- 如何在不退出javascript的情况下从javascript更新网页
- 如何使用JavaScript更新JSP页面的一些组件
- 如何使用javascript更新csv文件
- 将字符串转换为数组使用javascript更新一个值并返回一个字符串
- 通过javascript更新Django数据库
- JavaScript:更新<选择>给定月份输入的天数列表
- JavaScript更新功能不起作用
- 使用 node.js 和 javascript 更新 HTML 对象
- 使用 JavaScript 更新 Google 云端硬盘上的文件内容
- 使用 JavaScript 更新日期
- 使用JavaScript更新自定义设置-Salesforce
- JavaScript更新一个2MB的JSON文件
- 使用javascript更新数据库
- 表单提交后用Javascript更新表-在IE&边
- 使用javascript更新解析中的行
- 如何使用JavaScript更新iframe的信息
- 使用JavaScript更新网页,无需重新加载网页