• 4022阅读
  • 51回复

2017年1月20日:手机版添加每日打卡相关信息 [复制链接] [手机版]

上一主题 下一主题
离线zhangjingyu

只看楼主 正序阅读 使用道具 绿 楼主  发表于: 2017-01-20 22:44:20 星期五
——  点此访问道具中心 • 本帖被楼主 zhangjingyu 使用了 加亮道具 ——
今天是腊月二十三,小年,祝大家小年快乐!就要过年了,大家高兴吗?哎,又长了一岁!

曾经创造的连续打卡记录是120多天:莘祺网最高打卡纪录

哦,卖嘎的!4年前的事儿了!时间都去哪儿了???

好长时间没坚持连续打卡了。

这两天研究每日打卡的代码,想把它放到论坛首页,不过,收藏的代码不能用,自己尝试修改也搞不定,而且代码需要很多,可能会影响加载速度,那就算了吧。

昨天晚上抠出来几段代码,备用。今天上午,用了差不多一个上午的时间,终于组合成可以判断今天是否打卡了的代码!如果打卡了,手机版就显示:每日打卡: 已打卡 ;如果没打卡,就显示:每日打卡: 还没打卡,这就去!(这是个链接)
  1. list($todayStart,$todayEnd) = array($tdtime,$tdtime+86400);
  2. if($winddb['punch'] > $todayStart && $winddb['punch'] < $todayEnd){
  3.     ajaxResponse('你已经打卡,请明天再试',false);
  4. }

不过,在下午的测试中发现,如果自己打卡了,查看别人的空间并且ta又没打卡,还是会显示“每日打卡: 还没打卡,这就去!(这是个链接)这不科学吧!所以,需要加个uid判断,就是自己的空间显示”每日打卡“,访问别人的空间时不显示。这个,直到晚饭前才搞定(其实代码很简单,主要就是if($winduid == $uid){,可咱本来就不太懂php代码,再加上时间长有些生疏了,就因为少写了一个等号,与成功擦肩而过)。

能够判断出来今天是否打卡了,固然取得了可喜成果,不过,我最想得到的信息是连续多少天连续打卡,这才是最有意义的。通过研究下面的代码,最终只能得到多少天未打卡(用里面的公式计算),以及连续打卡的情况下提示今天是否打卡了。要想得到连续打卡天数,看代码需要很多东西,这个很复杂,不是几行代码就能搞定的,一点儿头绪都没有,而且去打卡的时候(访问电脑版个人中心)也是能够看到连续多少天打卡的,所以上面的坚持(纠结)也是没有意义的。就至此为止吧。
  1. list($isPunch,$showPunch) = isPunchRoutine();//每日打卡
  2. if ($showPunch) {
  3.     $behaviorService = L::loadClass('behaviorservice','user');
  4.     $punchBehavior = $behaviorService->getBehaviorStatistic($winduid,'continue_punch');
  5.     if ($isPunch) {
  6.         //未打卡
  7.         $unPunchDays = $winddb['punch'] > 0 ? ceil(($tdtime - PwStrtoTime(get_date($winddb['punch'],'Y-m-d'))) / 86400) : 1;
  8.         $punchText =  $unPunchDays > 1 ? "{$unPunchDays}天未打卡" : "每日打卡";
  9.     } else {
  10.         //已打卡
  11.         $punchBehavior['num'] or $punchBehavior['num'] = 1;
  12.         $punchText = "连续{$punchBehavior['num']}天打卡";
  13.     }        
  14. }
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 置顶 (来自34楼) 发表于: 2017-01-22 12:54:56 星期日  点亮(0)
—— 管理操作 •  为你守候 执行 帖内置顶 操作 (2017-01-22 13:23) ——
从未打过卡的会员手机版打卡信息修正(问题如楼上所示):

连续天数: 0天或今天未打卡
打卡信息: 该用户好像从未打过卡
最后打卡: 莘祺网感谢有你!

好了,这回应该彻底完成了!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 置顶 (来自21楼) 发表于: 2017-01-21 21:49:18 星期六  点亮(0)
—— 管理操作 •  为你守候 执行 帖内置顶 操作 (2017-01-21 21:58) ——
手机版连续打卡天数终于研究出来了!不过,现在真的好困啊!

代码(自己写的)其实并不算太复杂,只加了三行,一行查询,两行判断输出:要么得到连续打卡天数,要么输出提示信息“0天或今天未打卡”。

重点,难点,关键在于:有没有存储连续打卡的天数,到哪儿去查询得到数据?拿到数据后利用什么样的逻辑判断得到最终的输出结果?
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 51楼 发表于: 2019-10-26 20:57:27 星期六  点亮(0)
今天连续打卡1000天了,通过莘祺网最高打卡记录里面某一楼链接来到这个主题。
刚刚把全部帖子看了一遍,怀念下过去。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线未来首先

只看该作者 50楼 发表于: 2017-03-13 14:59:25 星期一  点亮(0)
我打了卡,呵呵
一个人的生命中,应该以:
上帝第一
家庭第二
事业第三
为生活的优先次序。
离线zhangjingyu

只看该作者 49楼 发表于: 2017-03-10 20:22:32 星期五  点亮(0)
连续天数: 50天,真棒!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 48楼 发表于: 2017-02-18 03:54:04 星期六  点亮(0)
感谢楼主,祝福莘祺!

——本帖通过莘祺网回复.
本部分内容设置了登录可见,请先登录
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 47楼 发表于: 2017-02-18 02:29:23 星期六  点亮(0)
手机检查电脑版,样式和滚动正常!

——本帖通过莘祺网回复.
本部分内容设置了登录可见,请先登录
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 46楼 发表于: 2017-02-18 02:19:19 星期六  点亮(0)
都辛苦了,去睡觉!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
离线zhangjingyu

只看该作者 45楼 发表于: 2017-02-18 02:15:55 星期六  点亮(0)
主要代码贴上:
  1. /**
  2. * 时间间隔处理
  3. */
  4. function getAgotime($time,$rtasdate=false) {
  5.     global $timestamp,$config;
  6.     if ($rtasdate == true) {
  7.         return getTrueDate($time);
  8.     }
  9.     $between = $timestamp - $time;
  10.     if ($between < 60) {
  11.         $rt = $between . "秒前";
  12.     } elseif ($between < 3600) {
  13.         $rt = floor($between/60) ."分钟前";
  14.     } else {
  15.         if (!$config['timefmt']['hour'] && !$config['timefmt']['day'] && !$config['timefmt']['month']) {
  16.             $rt = getTrueDate($time);
  17.         } else {
  18.             if ($between < 86400){ //一天
  19.                 if ($config['timefmt']['hour']) {
  20.                     $hour = floor($between/3600);
  21.                     if ($hour > $config['timefmt']['hour']) {
  22.                         $rt = getTrueDate($time);
  23.                     } else {
  24.                         $rt = $hour."小时前";
  25.                     }
  26.                 } else {
  27.                     $rt = getTrueDate($time);
  28.                 }
  29.             } elseif ($between < 2678400) {//31天
  30.                 if ($config['timefmt']['day']) {
  31.                     $day = floor($between/86400);
  32.                     if ($day > $config['timefmt']['day']) {
  33.                         $rt = getTrueDate($time);
  34.                     } else {
  35.                         $rt = $day."天前";
  36.                     }
  37.                 } else {
  38.                     $rt = getTrueDate($time);
  39.                 }
  40.             } elseif ($between < 31536000) {//365天
  41.                 if ($config['timefmt']['month']) {
  42.                     $month = floor($between/2678400);
  43.                     if ($month > $config['timefmt']['month']) {
  44.                         $rt = getTrueDate($time);
  45.                     } else {
  46.                         $rt = $month."月前";
  47.                     }
  48.                 } else {
  49.                     $rt = getTrueDate($time);
  50.                 }
  51.             }
  52.         }
  53.     }
  54.     return $rt;
  55. }
  56. /**
  57. * 获取实际日期
  58. */
  59. function getTrueDate($time) {
  60. /**
  61.     global $timestamp;
  62.     $Y1 = get_date($time,"Y");
  63.     $Y2 = get_date($timestamp,"Y");
  64.     if ($Y1 = $Y2) {
  65.         $rt = get_date($time,'m-d');
  66.     } else {
  67.         $rt = get_date($time,'Y-m-d');
  68.     }
  69.     return $rt;
  70. *以上为原函数内容,不知道这个$time怎么来的?
  71. *原滴答时间只显示月日,历史滴答也不显示年份
  72. *2017年2月17日修改,同时让首页多格调用也显示如此
  73. **/
  74.     $rt = get_date($time,'Y-m-d');
  75.     return $rt;
  76. }

60行起的getTrueDate($time)这个函数可能写得不太好,所以让我给改了,就解决问题了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!