首页 > 语言 > JavaScript > 正文

一个php+js实时显示时间问题

2024-05-06 16:24:37
字体:
来源:转载
供稿:网友

本文给大家分享的是解决的php+js实时显示时间问题,主要是自己当时的理解有问题,也许大家有和我一样的情况,这里分享给大家

我们先来看下这段代码

 

 
  1. $(function(){ 
  2.  
  3. setInterval(function(){ 
  4. var timer = '<?php echo date("Y-m-d H:i:s",time()) ?>'
  5. $("#test").append(timer); 
  6. },500); 
  7. }); 

这段代码哪里有问题,为啥网页加载后网页一直是那个时间不会变呢?php和js的加载机制有啥不同?

这样是不对的,php代码在输出前被解释,浏览器收到的代码应该是这个样子的

 

 
  1. $(function(){ 
  2.  
  3. setInterval(function(){ 
  4. var timer = '2015-01-02 12:02:02'
  5. $("#test").append(timer); 
  6. },500); 
  7. }); 

这样,当你定时更新的都是一个定值

修改如下

 

 
  1. // 对Date的扩展,将 Date 转化为指定格式的String 
  2. // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,  
  3. // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)  
  4. // 例子:  
  5. // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423  
  6. // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18  
  7. Date.prototype.Format = function (fmt) { //author: meizz  
  8. var o = { 
  9. "M+"this.getMonth() + 1, //月份  
  10. "d+"this.getDate(), //日  
  11. "h+"this.getHours(), //小时  
  12. "m+"this.getMinutes(), //分  
  13. "s+"this.getSeconds(), //秒  
  14. "q+": Math.floor((this.getMonth() + 3) / 3), //季度  
  15. "S"this.getMilliseconds() //毫秒  
  16. }; 
  17. if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 
  18. for (var k in o) 
  19. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 
  20. return fmt; 
  21.  
  22. $(function(){ 
  23.  
  24. setInterval(function(){ 
  25. var timer = new Date().Format("yyyy-MM-dd HH:mm:ss"); 
  26. $("#test").append(timer); 
  27. },500); 
  28. }); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选