clock()是C/C++中的计时函数,而与其相隐山关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
clock_t clock(void)
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型,在time.h文件中,可以找到对它的圆携悔定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t
#define _CLOCK_T_DEFINED
#endif
很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到每过千分之橘正一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:
void elapsed_time()
{
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC)
}
相关代码如下:
下面是比较两个绝对时间的大小:
1.<?php
2. $zero1=date(“y-m-d h:i:s”)
3. $zero2=”2010-11-29 21:07:00′
4. echo “zero1的时间为:”.$zero1.”<br>”
5. echo “zero2的时间为:”.$zero2.”<br>”
6. if(strtotime($zero1)<strtotime($zero2)){
7. echo “zero1早于zero2′
8. }else{
9. echo “zero2早于zero1′
10. }
11. ?>
下面是倒计时小程序 实例代码:
<?php
$zero1=strtotime (date("y-m-d h:i:s"))//当前时间 ,注意H 是24小时 h是12小时
$zero2=strtotime ("2014-1-21 00:00:00") //过年时间,不能写2014-1-21 24:00:00 这样不滑兄迅对
$guonian=ceil(($zero2-$zero1)/86400)//60s*60min*24h
echo "离过年还有<strong>$guonian</strong>天!"
?>
<?php
//PHP计算两个时间差的方法
$startdate="2010-12-11 11:40:00"信此
$enddate="2012-12-12 11:45:09"
$date=floor((strtotime($enddate)-strtotime($startdate))/86400)
$hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600)
$minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60)
$second=floor((strtotime($enddate)-strtotime($startdate))%86400%60)
echo $date."天<br>"
echo $hour."小时<br>"
echo $minute."分钟<br>"
echo $second."秒<br>"
?>
<?php
/**
* 时间差计算
*
* @param Timestamp $time
* @return String Time Elapsed
* @author Shelley Shyan
* @copyright http://phparch.cn (Professional PHP Architecture)
*/
function time2Units ($time)
{
$year = floor($time / 60 / 60 / 24 / 365)
$time -= $year * 60 * 60 * 24 * 365
$month = floor($time / 60 / 60 / 24 / 30)
$time -= $month * 60 * 60 * 24 * 30
$week = floor($time / 60 / 60 / 24 / 7)
$time -= $week * 60 * 60 * 24 * 7
$day = floor($time / 60 / 60 / 24)
$time -= $day * 60 * 60 * 24
$hour = floor($time / 60 / 60)
$time -= $hour * 60 * 60
$minute = floor($time / 60)
$time -= $minute * 60
$second = $time
$elapse = ''
$unitArr = array('年' =>'year', '个月'=>'month', '周'=>'week', '天'尘坦=>'day',
'小时'=>'hour', '分钟'=>'minute', '秒'=>'second'
)
foreach ( $unitArr as $cn =>$u )
{
if ( $$u >0 )
{
$elapse = $$u . $cn
break
}
}
return $elapse
}
$past = 2052345678// Some timestamp in the past
$now = time() // Current timestamp
$diff = $now - $past
echo '发表于' . time2Units($diff)
补充说明:
1、PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。
2、PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。
3、PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)