PHP时间戳使用实例代码
我们一定会碰到这样的情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,然后两家银行都想在你的账户上加上500元存款。那么,银行A便将1000元改成1500元,同时,银行B也将1000元改成了1500元。这样就糟糕了!最后,你的银行账户上最后只有1500元而不是理应的2000元,等于白白损失了500元!这就是在没有锁定数据的情况下修改造成的严重问题。然而,我们可以通过时间戳来巧妙解决这个问题。
我们来看思路:
在银行account表中建立时间戳字段timestamp,设定为文本类型varchar。
当银行A读取account表中的存款字段时,同时也读取时间戳字段,比如123456。
当银行A修改完存款数值后,进行存盘操作时,将先前读取的时间戳123456与当时表中的时间戳进行一次对比,如果一致,那么允许存盘,然后生成一个新的时间戳比如456789替换表中原有的时间戳123456。
这样做会带来什么好处呢。
我们再来看一开始的那个情况:银行A与银行B几乎同时打开你的账户并看到你的账户上原有1000元存款,与此同时两个银行业同时读取了时间戳123456,接下来就有区别了,当银行A把1000元改成1500元后,存盘,系统将对比先前的时间戳123456是否与存盘时表中的时间戳一致,显然,现在应该是一致的,那么允许存盘,并生成新的时间戳456789替换了旧的时间戳123456。接下去,B银行也将1000元修改成了1500元,存盘,系统对比先前的时间戳123456是否与存盘时表中的时间戳一致,发现先前的时间戳123456已经与现在的时间戳456789相异,系统拒绝存盘,要求刷新数据,那么数据刷新之后1000元已经因为之前A银行存入了500元而成为了1500元,那么B银行就会在1500元的基础上改为2000元,再次存盘,系统允许。这样,我们就避免了重复修改数据所带来的错误!
有些像绕口令,希望大家已经明白我的意思~
最后,让我们看看PHP中对时间戳的一些操作代码。
获得时间戳
<?php
$timestamp=time();
echo $timestamp;
?>
更新timestamp的SQL的语句:
update 表名 set 字段名=$timestamp where 条件=值;
作者:Sunec
原载:Cenus Blog
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
相关推荐
-
PHP时间戳 strtotime()使用方法和技巧
在php中我想要获取时间戳有多种方法,最常用的就是使用time函数与strtotime()函数把日期转换成时间戳了,下面我来给大家分享一下时间戳函数 strtotime用法.获取指定的年月日转化为时间戳:pHP时间戳函数获取指定日期的unix时间戳 strtotime('2012-12-7')示例如下: 复制代码 代码如下: <?php echo strtotime('2012-12-7'); //结果:1354838400 ?> 说明:返回2012年12月7日0点0分0秒时间戳. 将
-
php日期转时间戳,指定日期转换成时间戳
写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式. 一.在MySQL中完成 这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性. 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式:selec
-
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式. 一.在MySQL中完成 这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性. 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式:selec
-
php 创建以UNIX时间戳命名的文件夹(示例代码)
实例如下: 复制代码 代码如下: <?php //Get timenow $addtime=date("Ymd",time()); //Creat Dir $testdir="./".$addtime."/"; if(file_exists($testdir)): else: mkdir($testdir,0777); endif; ?>
-
使用php 获取时间今天明天昨天时间戳的详解
使用php获取时间今天明天昨天时间戳2013-06-20 11:12<?phpecho "今天:".date("Y-m-d")."<br>"; echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>"; echo "明天:".date("Y-m-
-
php strtotime 函数UNIX时间戳
如果 time 的格式是绝对时间则 now 参数不起作用.如果 time 的格式是相对时间则其所相对的时间由 now 提供,或者如果未提供 now 参数时用当前时间.失败时返回 -1. <?php echo strtotime ("now"), "\n"; echo strtotime ("10 September 2000"), "\n"; echo strtotime ("+1 day"), &q
-
PHP 时间转换Unix时间戳代码
复制代码 代码如下: <?php date_default_timezone_set('Asia/Chongqing'); $time1 = "2006-04-16 08:40:54"; $time2 = strtotime($time1); echo $time2; echo date('Y-m-d h:i:s',$time2); ?>
-
php UNIX时间戳用法详解
本文实例讲述了php UNIX时间戳用法.分享给大家供大家参考,具体如下: 时间戳是文件属性中的创建.修改.和访问时间.数字时间戳服务是Web网站安全服务项目之一,能提供电子文件的日期和时间信息的安全保护. 时间戳的优点是: 可用变化的加密数值,防止数值被窃取后非法重复利用,起到加密的作用.时间戳主要依赖于时间,在约定的一段时间内产生唯一的一个数值. UNIX时间戳 在UNIX系统中,日期与时间表示为自1970年1月1日零点起到当前时刻的秒数,这种时间被称为UNIX时间戳,以32位二进制数表示.
-
PHP中UNIX时间戳和日期间的转换与计算实例
UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式.以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时间戳.UNIX时间戳是从1970年1月1日零点(UTC/GMT的午夜)开始起到当前时间所经过的秒数.1970年1月1日零点作为所有日期计算的基础,这个日期通常成为UNIX纪元. 因为UNIX时间戳是一个32位的数字格式,所以特别适用于计算机处理,例如计算两
-
php 计算两个时间戳相隔的时间的函数(小时)
这个是可以具体到小时的php代码 复制代码 代码如下: /* Author: 杨宇 yangyu@sina.cn */ //输入两个时间戳,计算差值,也就是相差的小时数,如返回2:10,则表示输入的两个时间相差2小时10分钟 function hours_min($start_time,$end_time){ if (strtotime($start_time) > strtotime($end_time)) list($start_time, $end_time) = array($end_t
-
php实现兼容2038年后Unix时间戳转换函数
使用方法跟旧的函数一模一样. 复制代码 代码如下: function fun_strtotime($var1=0,$var2=0){ if(!$var2){ $var2 = $var1; $var1 = 0; } if(is_numeric($var2)){ $var2 = '@'.$var2; } try{ $date = new DateTime($var2); $dat
-
PHP获取毫秒级时间戳的方法
本文实例讲述了PHP获取毫秒级时间戳的方法.分享给大家供大家参考.具体分析如下: PHP本身没有提供获取毫秒级时间戳的函数,java里面可以通过gettime();获取.如果是要与java写的某些程序进行高精度的毫秒级的对接通信,则需要使用PHP输出毫秒级的时间.之前我采取的方法是采用不精准的方式,也就是在PHP原生的时间函数后面加上一个三位数字构成.为获取更为精准的毫秒级时间戳可以使用下面的代码: <?php function getMillisecond() { list($t1, $t2)
随机推荐
- 初识XML基础知识
- extjs实现选择多表自定义查询功能 前台部分(ext源码)
- js实现鼠标移到链接文字弹出一个提示层的方法
- 详解GridView自带的编辑删除更新功能
- JS定时检测任务任务完成后执行下一步的解决办法
- 浅析ASP.NET万能JSON解析器
- wampserver改变默认网站目录的办法
- 使用Bash Shell对目录中的文件实现递归式拷贝
- Lua脚本实现递归删除一个文件夹
- lua实现的2048小游戏
- javascript与有限状态机详解
- 经典黑客远程网络攻击过程概要
- nginx centos 服务开机启动设置实例详解
- 三个有用的 Switch 命令
- WEB服务器安全配置说明文档
- java父类和子类初始化顺序的深入理解
- Android实现qq列表式的分类悬浮提示
- 电信禁止路由上网的破解方法
- React组件对子组件children进行加强的方法
- JS实现点击发送验证码 xx秒后重新发送功能