门户首页调用服务器时间问题
门户首页用脚本调用服务器时间,用内部刷新按钮后不出内容,只有用浏览器重新刷新下才出function divDate(){
// 1.获取时间对象
var date = Date.getFromServer();
// 2.获取年月日、时分秒
var year = date.getFullYear();
var month = date.getMonth() + 1;
var daye = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
//3.获取本地系统星期几
// var a = new Array("日", "一", "二", "三", "四", "五", "六");
//var week = new Date().getDay();
// var str = "星期"+ a;
//*******通过获取的服务器日期计算周几********
var weekArray = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
var week = weekArray;//注意此处必须是先new一个Date
//4.计算当前是本年第几周
var date2 = new Date(date.getFullYear(), 0, 1);
var day1 = date.getDay();
if (day1 == 0) day1 = 7;
var day2 = date2.getDay();
if (day2 == 0) day2 = 7;
let d = Math.round((date.getTime() - date2.getTime() + (day2 - day1) * (24 * 60 * 60 * 1000)) / 86400000);
//当周数大于52则为下一年的第一周
var getYearWeek = " 第"+(Math.ceil(d / 7) + 1)+"周";
//5.封装成函数
month=addZero(month);
daye=addZero(daye);
hour=addZero(hour);
minute=addZero(minute);
second=addZero(second);
//ceil=addZero(getYearWeek);
// 4.拼接字符串(此处需注意,必须拼接一个字符串,空串也行,否则将会变成数字相加)
var divDate = year + '年'+ month + '月' + daye + '日' +week + ',' + getYearWeek;
document.getElementById('divDate').innerHTML = divDate;
}
// 为数字添加0前缀
function addZero(num){
if(num<10){
num='0'+num;
}
return num;
}
// 先调用一次
divDate();//目的:衔接,
setInterval(divDate,1000);//每1s执行一次代码(所以开始执行的时候会间隔1s) document.getElementById('divDate').innerHTML = divDate;不要用这种方式赋值,用平台自带的,this.data.divDate=divDate 论坛管理员 发表于 2023-12-13 09:40
document.getElementById('divDate').innerHTML = divDate;不要用这种方式赋值,用平台自带的,this.data.d ...
改完了不出内容了啊 不好意思,divDate是个容器对吧,容器不能this.data赋值,需要this.form.get("divDate").node.innerHTML = divDate;; 论坛管理员 发表于 2023-12-13 15:59
不好意思,divDate是个容器对吧,容器不能this.data赋值,需要this.form.get("divDate").node.innerHTML =...
不是容器啊,是label标签的标志写的divDate 论坛管理员 发表于 2023-12-13 15:59
不好意思,divDate是个容器对吧,容器不能this.data赋值,需要this.form.get("divDate").node.innerHTML =...
不好意思 ,那个调用出来了,现在有个新的问题,页面上回来的时间是固定的,不能实现循环,我之前写的是一秒刷新一下,现在return写到function里不出内容,//function showTime(){
// 1.获取时间对象
var date = Date.getFromServer();
// 2.获取年月日、时分秒
var year = date.getFullYear();
var month = date.getMonth() + 1;
var daye = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
//3.获取星期几
var week = date.getDay()
// 3.给小于10的数字前补0
/* if(hour<10){
hour = '0' + hour;
}
if(minute<10){
minute = '0' + minute;
}
if(second<10){
second = '0' + second;
}*/
// 封装成函数
month=addZero(month);
daye=addZero(daye);
hour=addZero(hour);
minute=addZero(minute);
second=addZero(second);
week=addZero(week);
// 4.拼接字符串(此处需注意,必须拼接一个字符串,空串也行,否则将会变成数字相加)
var divTimes = hour + ':'+ minute + ':' + second;
//document.getElementById('divTimes').innerHTML = divTimes;
return this.data.divTimes=divTimes
//}
// 为数字添加0前缀
function addZero(num){
if(num<10){
num='0'+num;
}
return num;
}
// 先调用一次
showTime();//目的:衔接,
setInterval(showTime,1000);//每1s执行一次代码(所以开始执行的时候会间隔1s)
不要return,赋值不需要return 论坛管理员 发表于 2023-12-14 10:22
不要return,赋值不需要return
不return 不出内容啊 您F12跟踪看看,是不是this的指向不对了,在最外层先把this赋给个变量,再试试看 论坛管理员 发表于 2023-12-14 17:06
您F12跟踪看看,是不是this的指向不对了,在最外层先把this赋给个变量,再试试看 ...
试过了,只要不加return,什么值都不显示,return 别的this变量 都能出来,变量加到 function循环里,就输出不了,
但显示的值有内容
function showTime(){
var date = Date.getFromServer();
// 2.获取时分秒
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
hour=addZero(hour);
minute=addZero(minute);
second=addZero(second);
// 4.拼接字符串(此处需注意,必须拼接一个字符串,空串也行,否则将会变成数字相加)
var mytimes = hour + ':' + minute + ':' + second;
//document.getElementById('mytimes').innerHTML = mytimes;
this.data.mytimes = mytimes
}
// 为数字添加0前缀
function addZero(num){
if(num<10){
num='0'+num;
}
return num;
}
showTime()
setInterval(showTime,1000);//每1s执行一次代码(所以开始执行的时候会间隔1s)
return mytimes
页:
[1]
2