PHP 怎么判断两个时间戳是不是在同一周

PHP 怎么判断两个时间戳是不是在同一周,第1张

用date函数可以确定当前时间戳是第几周,然后比较两个时间戳的数值是不是一样就行了。

<php
echo date('W',strtotime('2016-10-9')),"<br/>";
echo date('W',strtotime('2016-10-10')),"<br/>";
echo date('W',strtotime('2016-10-12')),"<br/>";
echo date('W',strtotime('2016-10-16')),"<br/>";
echo date('W',strtotime('2016-10-18'));
>

把得到的结果赋值,然后加一个if判断就行了

要看你的 “时间戳” 是怎样定义的。
EXCELL 里 是 03/12/2014 这种格式, 你可以 用 sscanf() 读出。
int d,m,y;
char s[]="03/12/2014";
sscanf(s,"%2d/%2d/%4d",&d,&m,&y);
printf("%d %d %d\n",d,m,y);
----
c 语言 timestampe 可以用 timeh 里的函数获取和处理
例如 已知 时间戳 数值: 1483040530
#include<stdioh>
#include<timeh>
int main(){
time_t rt;
struct tm timeinfo;
char timE [80];
rt = 1483040530; // 若已知数值
timeinfo = localtime ( &rt ); //转当地时间,tm 结构
strftime ( timE,80,"%Y-%m-%d %I:%M:%S",timeinfo); //用自己喜欢的格式输出
printf ("%s", timE);
return 0;
}
输出: 2016-12-29 02:42:10

楼上的

date("z")

或者:

$d = getdate();$d["yday"];

确实直接得到天数,如果要自己算的话,可以如下:

每一年的开始都是1月1日,所以用今天的时间戳减去一月一日的时间戳,再除以86400(都是凌晨的时间戳,所以肯定是86400的倍数),就是天数

<php
$today = strtotime(date('Ymd'));
$year_start = strtotime(date(Y0101));
$days = ( $today - $year_start )/86400 + 1;//考虑到1月1日是第一天,所以+1

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术一种变种的应用。
定义
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
分类
1自建时间戳:此类时间戳是通过时间接收设备(如GPS,CDMA,北斗卫星)来获取时间到时间戳服务器上,并通过时间戳服务器签发时间戳证书。此种时间戳可用来企业内部责任认定,在法庭认证时并不具备法律效力。因其在通过时间接收设备接收时间时存在被篡改的可能,故此不能做为法律依据。
2具有法律的效力的时间戳:它是由我国中科院国家授时中心与北京联合信任技术服务有限公司负责建设的我国第三方可信时间戳认证服务。由国家授时中心负责时间的授时与守时监测。因其守时监测功能而保障时间戳证书中的时间的准确性和不被篡改。获取时间戳平台有“大众版权保护平台”,可与我国中科院国家授时中心时间同步。
数据库系统中时间戳
数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。
每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新 *** 作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。
使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。如果对行进行了更改,就会更新该时间戳值。如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。若要返回数据库的当前时间戳值,请使用 @@DBTS。
在控制并发时起到作用
用户A/B同时打开某条记录开始编辑,保存是可以判断时间戳,因为记录每次被更新时,系统都会自动维护时间戳,所以如果保存时发现取出来的时间戳与数据库中的时间戳如果不相等,说明在这个过程中记录被更新过,这样的话可以防止别人的更新被覆盖。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12820982.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存