通过unixtime判断时间翻篇
来源:互联网 发布:卫生许可证制作软件 编辑:程序博客网 时间:2024/05/18 00:21
工作中经常用到需要按天来重置一些临时数据的需求,例如每日积分、每日奖励等,需要在每天某个指定的时间点来重新计算。
常用到的方式,记录上次清理的unixtime,下次查询的时候,根据当前unixtime和记录里的unixtime来判断是否处于同一个时间段。
如果以0点为界限,处理起来还是比较简单,通畅通过localtime_r转成 struct tm的方式,这样可以判断tm_year/tm_mon/tm_mday是否相等,或者tm_year/tm_yday是否相等
但如果不是以0点为界限(比如帮用户暂存的一些临时数据,0点用户在线还是很高的,这时候清理不太友好),处理的逻辑就麻烦很多。比如 以凌晨3点为界,1号3点到2号3点是一个时间段。这样判断是否清理的逻辑想想就头大,要写好多行。而且这样频繁调用localtime性能也不算太高。
所以这时候转换一下思维,unixtime记录的是从1970年1月1号0点到现在的秒数。那根据unixtime算出目前是从原点开始的第几天,判断这个天数是否相等就可以了。唯一要留意的是,unixtime是用的UTC时间,需要考虑时区。
这样,由于北京时间是东8区,比UTC早8个小时,所以以0点为界的判断如下
(t1+8*3600)/86400 == (t2+8*3600)/86400
如果以3点为界的判断为(东8区的3点,就是东5区的0点)
(t1+5*3600)/86400 == (t2+5*3600)/86400
其他时间点类推
常用到的方式,记录上次清理的unixtime,下次查询的时候,根据当前unixtime和记录里的unixtime来判断是否处于同一个时间段。
如果以0点为界限,处理起来还是比较简单,通畅通过localtime_r转成 struct tm的方式,这样可以判断tm_year/tm_mon/tm_mday是否相等,或者tm_year/tm_yday是否相等
但如果不是以0点为界限(比如帮用户暂存的一些临时数据,0点用户在线还是很高的,这时候清理不太友好),处理的逻辑就麻烦很多。比如 以凌晨3点为界,1号3点到2号3点是一个时间段。这样判断是否清理的逻辑想想就头大,要写好多行。而且这样频繁调用localtime性能也不算太高。
所以这时候转换一下思维,unixtime记录的是从1970年1月1号0点到现在的秒数。那根据unixtime算出目前是从原点开始的第几天,判断这个天数是否相等就可以了。唯一要留意的是,unixtime是用的UTC时间,需要考虑时区。
这样,由于北京时间是东8区,比UTC早8个小时,所以以0点为界的判断如下
(t1+8*3600)/86400 == (t2+8*3600)/86400
如果以3点为界的判断为(东8区的3点,就是东5区的0点)
(t1+5*3600)/86400 == (t2+5*3600)/86400
其他时间点类推
- 通过unixtime判断时间翻篇
- Unix时间戳字符串转int (unixtime)
- C#中获取时间戳(UnixTime)的方法
- unixtime时间戳 转 年月日(PHP代码函数)
- 年月日转 unixtime时间戳(PHP代码函数)
- 使用 unixtime 时间转换成正常时间,取得每天最高的数据
- Macbook Pro(无法完全)通过序列号与激活时间辨别是否为翻新机
- 通过系统时间判断 上下午
- nodejs通过lodash合并去重由unixtime和Date组成的两个数组
- linux shell 处理unixtime
- Teradata Unixtime & Timestamp Convert
- 校园网通过ipv6翻qiang出去
- Gesture 通过手势实现翻书效果
- 创建日程时对时间的判断(通过计算时间差进行判断NSTimeInterval)
- 文章上下篇翻篇
- myeclipse2013版本(刚刚通过翻墙软件看到的)
- Python 通过 百度 rest 进行 语音翻译成中文文字。
- 通过screen判断高度
- 基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能
- rails查询学习笔记
- 第一次c程序设计上机报告
- 利用存储过程分页
- 第二周任务:读取数据到结构体数组
- 通过unixtime判断时间翻篇
- UML中用例图的extend和include
- Camera 图像处理原理分析
- sencha touch formPanel 和fieldSet 的setRecords方法
- 写给24岁的自己
- Java Reflection- Annotations
- 学习一种新的编程语言所要做的15个练习(中英文转载)--from译言网
- TP-link 无线路由器WDS设置方法图解_无线桥接设置
- 项目5-玩日期(一)