12下一页
发帖
查看: 8998|回复: 12

门户首页调用服务器时间问题

升级   2.18%

18

主题

27

回帖

218

积分

注册会员

Rank: 2

积分
218
发表于 2023-12-12 14:43:33 | 显示全部楼层 |阅读模式
门户首页用脚本调用服务器时间,用内部刷新按钮后不出内容,只有用浏览器重新刷新下才出


[AppleScript] 纯文本查看 复制代码
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[week];  

   //*******通过获取的服务器日期计算周几********


var weekArray = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");

var week = weekArray[new Date(date).getDay()];//注意此处必须是先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)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2023-12-13 09:40:12 | 显示全部楼层
document.getElementById('divDate').innerHTML = divDate;不要用这种方式赋值,用平台自带的,this.data.divDate=divDate
回复

使用道具 举报

升级   2.18%

18

主题

27

回帖

218

积分

注册会员

Rank: 2

积分
218
发表于 2023-12-13 13:12:14 | 显示全部楼层
论坛管理员 发表于 2023-12-13 09:40
document.getElementById('divDate').innerHTML = divDate;不要用这种方式赋值,用平台自带的,this.data.d ...

改完了不出内容了啊
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2023-12-13 15:59:43 | 显示全部楼层
不好意思,divDate是个容器对吧,容器不能this.data赋值,需要this.form.get("divDate").node.innerHTML = divDate;;
回复

使用道具 举报

升级   2.18%

18

主题

27

回帖

218

积分

注册会员

Rank: 2

积分
218
发表于 2023-12-13 19:29:10 | 显示全部楼层
论坛管理员 发表于 2023-12-13 15:59
不好意思,divDate是个容器对吧,容器不能this.data赋值,需要this.form.get("divDate").node.innerHTML =  ...

不是容器啊,是label标签的标志写的divDate
回复

使用道具 举报

升级   2.18%

18

主题

27

回帖

218

积分

注册会员

Rank: 2

积分
218
发表于 2023-12-13 19:53:13 | 显示全部楼层
论坛管理员 发表于 2023-12-13 15:59
不好意思,divDate是个容器对吧,容器不能this.data赋值,需要this.form.get("divDate").node.innerHTML =  ...

不好意思 ,那个调用出来了,现在有个新的问题,页面上回来的时间是固定的,不能实现循环,我之前写的是一秒刷新一下,现在return写到function里不出内容,
[AppleScript] 纯文本查看 复制代码
//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)

回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2023-12-14 10:22:01 | 显示全部楼层
不要return,赋值不需要return
回复

使用道具 举报

升级   2.18%

18

主题

27

回帖

218

积分

注册会员

Rank: 2

积分
218
发表于 2023-12-14 12:03:58 | 显示全部楼层
论坛管理员 发表于 2023-12-14 10:22
不要return,赋值不需要return

不return 不出内容啊
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2023-12-14 17:06:41 | 显示全部楼层
您F12跟踪看看,是不是this的指向不对了,在最外层先把this赋给个变量,再试试看
回复

使用道具 举报

升级   2.18%

18

主题

27

回帖

218

积分

注册会员

Rank: 2

积分
218
发表于 2023-12-14 20:35:44 | 显示全部楼层
论坛管理员 发表于 2023-12-14 17:06
您F12跟踪看看,是不是this的指向不对了,在最外层先把this赋给个变量,再试试看 ...

试过了,只要不加return,什么值都不显示,return 别的this变量 都能出来,变量加到 function循环里,就输出不了,
但显示的值有内容
[AppleScript] 纯文本查看 复制代码
 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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

12下一页
发帖

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread