前辈们,师兄们,我在比较时间的问题上被困扰住了,特别需要你们帮助,拜托你们帮帮我!
考勤时间存储格式问题。我用的bigint,存储了时间戳。
限定:早上9点之前刷卡,5点半之后刷卡,算作没有迟到也没有早退。
刷卡签到和刷卡签退分别用了两张表:signin和signout。
遇到的问题有:
1. 我如何在用户刷卡的时候就判断他是否迟到或早退。
2. 在月末统计的时候,我如何获取他本月所有迟到和早退的记录。
关于时间的比较,感觉很头疼。还望各位前辈指点我,十分感谢。我用的thinkphp mysql。
数据表定义如下:
create table ts_user
(wxname varchar(50) not null primary key,
name varchar(50) not null,
telnum char(11) not null unique,
email varchar(50) unique,
address varchar(100)
)ENGINE=InnoDB DEFAULT charset=utf8;
create table ts_signin
(signid int not null auto_increment primary key,
wxname varchar(50) not null,
date timestamp not null,
location varchar(100) not null
)DEFAULT charset=utf8;
create table ts_signout
(signid int not null auto_increment primary key,
wxname varchar(50) not null,
date timestamp not null,
location varchar(100) not null
)DEFAULT charset=utf8;
alter table ts_signin add foreign key (wxname) references ts_user(wxname);
alter table ts_signout add foreign key (wxname) references ts_user(wxname);
我就在这一边想一等,能得到前辈指点,感激不尽!
回复讨论(解决方案)
strtotime("2015-01-26 09:00:00");strtotime("2015-01-26 17:30:00");
时间戳不就来了么
strtotime("2015-01-26 09:00:00");strtotime("2015-01-26 17:30:00");
时间戳不就来了么
谢谢,总算有人回答了。关键是,我到每个月底的时候,需要根据本月所有签到的时间戳,得出这个月迟到的次数,这样的话,不是要把每天的9点和17:30的时间戳都生成一下了吗?
// 获取时间的小时, H是24小时制 根据H来判断是否迟到,至于5点半的,再比较分钟就可以了吧,这样就不用每天都要生成时间戳了date('H', $timestamp)
echo date('h', strtotime("2015-01-27 09:01:10")); //9点 echo date('i', strtotime("2015-01-27 09:01:10"));//01分
记录数据的同时判断迟到和早退,并作为一个新字段保存
当天9点的时间戳:strtotime(date('Y-m-d') . ' 09:00')跟time()对比就可以了
create table ts_user(wxname varchar(50) not null primary key, name varchar(50) not null,telnum char(11) not null unique,email varchar(50) unique,address varchar(100))ENGINE=InnoDB DEFAULT charset=utf8;create table ts_signin(signid int not null auto_increment primary key, wxname varchar(50) not null, sdate int(10) not null,chidao int(1) default 0, // 1迟到,0没有迟到 int或bool 类型都行edate int(10) not null,zaotui int(1) default 0, //1早退,0没有早退, location varchar(100) not null // 这是干嘛的不知道)DEFAULT charset=utf8;
直接select count(chidao ) as chidaoa from ts_user,ts_signin, where ts_signin.wxname =ts_user.wxname and (1个月的判断)
类似这个就行,
每天加1条数据, 迟到,早退,都知道, 记得在每天晚上12点刷新, 没有签到,的,列为迟到, 或早退,插入数据段时候直接 写入chidao, 早退判断
我设置够公司的考勤机,比较复杂,还可以根据用户分部门,分时间组;但是整体来说,一个用户只可能属于一个考勤排班组。
考勤机还有一个设置,就是什么时候开始判断为上班,什么时候开始判断为下班;然后配上考勤排班里面的上下班时间,就不然判断他是否迟到或早退。
月末统计比较简单,知道获取到所有符合考勤的时间,比如你9:00上班,你就把所有上班考勤早于9:01分的考勤全部列出来了,然后循环一下日期,顺便去除放假的时间,自然而然的,迟到就出来了
随便看看,我不说话
create table ts_user(wxname varchar(50) not null primary key, name varchar(50) not null,telnum char(11) not null unique,email varchar(50) unique,address varchar(100))ENGINE=InnoDB DEFAULT charset=utf8;create table ts_signin(signid int not null auto_increment primary key, wxname varchar(50) not null, sdate int(10) not null,chidao int(1) default 0, // 1迟到,0没有迟到 int或bool 类型都行edate int(10) not null,zaotui int(1) default 0, //1早退,0没有早退, location varchar(100) not null // 这是干嘛的不知道)DEFAULT charset=utf8;
直接select count(chidao ) as chidaoa from ts_user,ts_signin, where ts_signin.wxname =ts_user.wxname and (1个月的判断)
类似这个就行,
每天加1条数据, 迟到,早退,都知道, 记得在每天晚上12点刷新, 没有签到,的,列为迟到, 或早退,插入数据段时候直接 写入chidao, 早退判断
每天12点刷新怎么刷呢,请教一下,谢谢啊!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Alipay PHP...

Session hijacking can be achieved through the following steps: 1. Obtain the session ID, 2. Use the session ID, 3. Keep the session active. The methods to prevent session hijacking in PHP include: 1. Use the session_regenerate_id() function to regenerate the session ID, 2. Store session data through the database, 3. Ensure that all session data is transmitted through HTTPS.

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...
