首页 > 编程 > JavaScript > 正文

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

2019-11-20 11:28:31
字体:
来源:转载
供稿:网友

我们先来看下这段代码

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

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

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

$(function(){ setInterval(function(){var timer = '2015-01-02 12:02:02';$("#test").append(timer);},500);});

这样,当你定时更新的都是一个定值
修改如下

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

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