1. 大牛,php 每日簽到功能限制某些用戶不允許簽到該如何實現
首先對需求分析一下:
根據當前時間判斷,是否可以簽到。(對吧看)
所以你需要有一個變數用來儲存他上一次簽到的時間,具體到某一天。在簽到的時候取這個欄位然後判斷就行了。
應該要用到的是strtotime() 和date() 這兩個函數。
(有點晚了提供下思路睡了,樓主可以根據具體的資料庫結構適當修改)
2. php mysql 日歷式簽到 怎麼做
給你個思路,代碼實現並不難。首先在你的用戶表中插入一個欄位,用來保存簽到的時間戳,用戶點擊簽到時,先從資料庫中取這個時間戳,與今天0點的時間戳進行比較,如果比今天0點的時間戳小,就說明今天沒有簽到,那麼更新這個欄位為現在的時間戳。如果比今天0點的時間戳大,就說明今天已經簽到過了,不做更改。
你可能會用到:
mktime 函數,這個函數是構築時間戳的,它的參數可以從右向左依次省略。省略的參數將會默認為本地時間。如:mktime(0,0,0) 這樣就取到了今天0點的時間戳。
time 函數,取當前時間的時間戳,這個函數沒有任何參數。
3. 請問下那個PHP每日簽到時怎麼實現的!
給你個思路吧,資料庫設置一個欄位為最後登錄時間,判斷時間是否為前一天,如果是就要求簽到。 再設置個簽到欄位,判斷當前是否簽到,以防登錄了沒簽到卻不要求簽到了。
4. PHP論壇每日簽到拜託了各位 謝謝
檢查一下你的調用是否無誤
5. PHP 如何判斷用戶當天已經簽到了
你好,你可以設置一個欄位讓他記錄先到的狀態,然後根據狀態去判斷是否先到。
6. php 想做個簽到,但是怎麼判斷連續3天 連續7天 連續30天簽到過啊。。思路是有 但是MYSQL那邊的語句。
數據表裡存儲兩個欄位,一個int存時間戳,一個int存簽到計數。每次簽到發生時,php頁面做判斷,計算本次簽到時間戳與系統記錄的最後一次簽到時間戳之差,超過3600*24,則將計數修改為零,否則+1。
sql語句就不寫了吧,就一個update的事情。。。
7. 怎麼用php來獲取時間 周次 節次來做簽到功能
簽到功能主要是需要獲取上次簽到時間,然後進行比對,如果比較之後在零點之後,且大於24小時,就認為連續簽到失敗。
關鍵點:每次需要記錄簽到時間,這樣以後無論是根據記錄,還是相應演算法都可以統計相關的簽到記錄。
簽到功能核心就是時間的比較,只要比對好時間,然後封裝簽到方法,就可以輕松記錄簽到情況。
8. php 簽到時間判斷,該怎麼寫出源代碼,比如現在簽到了,過了晚上24點就可以再簽到一次
首先對需求分析一下:
根據當前時間判斷,是否可以簽到。(對吧?)
所以你需要有一個變數用來儲存他上一次簽到的時間,具體到某一天。在簽到的時候取這個欄位然後判斷就行了。
應該要用到的是strtotime() 和date() 這兩個函數。
(有點晚了提供下思路睡了,樓主可以根據具體的資料庫結構適當修改)
9. PHP求連續簽到天數
設計表結構時多加一個欄位來存放連續簽到天數,每次簽到時更新這個欄位要簡單的多
否則你需要 每個人 都循環判斷前一天是否簽到的方法來解決
參考代碼
1--循環法
declare@dayint=1,--
2@userIdint=1,--用戶id
3@countint=0,--連續簽到多少天
4@isSinginTodayint--今天是否簽到
5
6whileexists(select*from#SignInLog
7whereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=@day)
8begin
9set@count=@count+1--【循環方法】
10set@day=@day+1--
11end
12
13select@isSinginToday=COUNT(*)from#SignInLogwhereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=0--今天是否登錄
14
15
16select@isSinginToday,--當天是否簽到
17@count+@isSinginToday--連續簽到n天
如果資料庫支持row_number(), mysql 不支持此函數...
可以用
declare@nowdatetime=getdate(),
@countint,
@useridint=1,
@isSinginTodayint
select@count=count(*)from(
selectdatediff(day,CreateTime,@now)aa,--簽到時間對比今天的差值
row_number()over(orderbycreatetimedesc)bb--排序欄位
from#SignInLog
whereUserId=@userIdanddatediff(day,CreateTime,@now)>0--條件排除今天的簽到記錄
)Twhereaa=bbselect@isSinginToday=COUNT(*)from#SignInLogwhereUserId=@UserIdandDATEDIFF(day,createtime,getdate())=0--今天是否登錄
select@isSinginToday,--當天是否簽到
@count+@isSinginToday--連續簽到n天
10. php如何寫出上班簽到
<html>
<head>
<title>上班簽到</title>
<meta charset='UTF-8'>
</head>
<body>
<form action='' method='post'>
簽到人姓名<input type='text' name='Name'><input type='submit' name='submit' value='簽到'><br>
</Form>
<?php
if(isset($_POST['submit')){
$name = $_POST['Name'];
$a = fopen("./簽到文件.txt","a");
$b =file("./簽到文件.txt");
foreach($b as $line){
if($line == $name."已經簽到"){
echo "你已經簽到過了";
fclose($a);
return;
break;
}
}
fwrite($a,$name."已經簽到");
fclose($a);
?>
</body>
</html>
一天簽到結束後需要刪除簽到文件