小程序製做簽到javascript
簽到製做 天天分爲 已簽到未簽到兩種狀態 把全部的天數存入一個數組中php
首先須要知道本月有多少天? 如 :2月有 28天 3月有31天 每個月的天數都不一樣 當潤年的時候天數也會不一樣html
根據PHP函數date("t"); 能夠得到有多少天 把天數存入data變量中在前臺頁面wxml用if判斷java
<view class='qp p5' wx:if="{{monthday==31}}"> <view> <image src='/img/{{day[28].imgs}}'></image> 29日 </view> <view> <image src='/img/{{day[29].imgs}}'></image> 30日 </view> <view> <image src='/img/{{day[30].imgs}}'></image> 31日 </view> </view> <view class='qp p5' wx:if="{{monthday==30}}"> <view> <image src='/img/{{day[28].imgs}}'></image> 29日 </view> <view> <image src='/img/{{day[29].imgs}}'></image> 30日 </view> </view> <view class='qp p5' wx:if="{{monthday==29}}"> <view> <image src='/img/{{day[28].imgs}}'></image> 29日 </view> </view> <view class='qp p5' wx:if="{{monthday==28}}"> </view>
看一下表結構thinkphp
表結構很是簡單 uid 字段 日期字段json
把userid 發送到後臺根據userid 查詢簽到表 查到本月簽到了 那些天小程序
我用的thinkphp5框架數組
$userid=$_GET["userid"]; //查詢本人這個月 有那些天簽到了 $a=date("Y-m");//獲取本月份 $b=strtotime("+1 months");//獲取下一個月份 $b=date("Y-m",$b);//用來查詢 本月的全部天數 大於本月 小於下一個月 $data=db("qiandao")->where("uid",$userid)->where("riqi",">=",$a)->where("riqi","<=",$b)->select(); $arr=[]; foreach ($data as $key => $value) { $arr[]=substr($value["riqi"], 8,2); } return json_encode($arr);
返回的數據格式 已簽到的天數 29號 1號 7號 24號 16號框架
全部的天數存在一個數組 中全部天數的數據格式 每一天數都有一個imgs圖片路徑 經過更改這個路徑來切換 已籤/未籤狀態函數
根據拿到的天數 修改對應數組的imgs的圖片路徑
that=this; wx.request({ url: server+'wechar/qiandao/qiandaosel', data:{userid:userid},//發送userid 根據userid肯定用戶 success:function(res){ var arr=res.data; for(var i=0;i<arr.length;i++){ //經過修改對應的下標imgs路徑實現 //由於數組的下標從0開始因此要-1 that.data.day[arr[i]-1].imgs="qian_n.png"; } //把修改完的數據放入data裏 that.setData({ day:that.data.day, }); } })
點擊簽到事件
$data["uid"]=$_GET["userid"]; $data["riqi"]=date("Y-m-d"); $nowtime=date("Y-m-d"); //判斷用戶今天是否已經簽到過了 if(db("qiandao")->where("uid",$data["uid"])->where('riqi',$nowtime)->find()){ }else{ db("qiandao")->insert($data); } //返回今天簽到的日期 return date("d");