首頁 > php教程 > php手册 > 正计时的三种方法

正计时的三种方法

WBOY
發布: 2016-06-06 20:08:34
原創
5469 人瀏覽過

正计时是指计算一个已过日期距今的时间,反之倒计时就是计算未来某个日子距今的时间.本来在我网站footer的正计时代码是用JS算的,今天想到还可以用别的方法来实现,(同样可以用来倒计时),总结如下: WordPress的 human_diff 函数 PHP的 time() 函数 JS运算(或C#

正计时是指计算一个已过日期距今的时间,反之倒计时就是计算未来某个日子距今的时间.本来在我网站footer的正计时代码是用JS算的,今天想到还可以用别的方法来实现,(同样可以用来倒计时),总结如下:

  1. WordPress的human_diff函数
  2. PHP的time()函数
  3. JS运算(或C#的timespan函数)

WordPress法

wordpress的human_diff函数可以输出智能时间差,用法为<?php human_time_diff( $from, $to ); ?>,其中$from代表开始时间,$to代表截止时间,常用在文章页:

1

<?php echo '由小蝴蝶发布于'.human_time_diff(get_the_time('U'), current_time('timestamp')).'前'; ?>

登入後複製

需要注意的是:这里需要使用的时间格式为Unix时间戳(Unix timestamp),所以在使用human_diff正计时之前,我们需要把时间转换为Unix时间戳格式,有很多在线转换时间戳的网站,可以Google一下"Unix timestamp".
比如我要计算的是我和小马哥在一起的日子(好酸哦嘻嘻~),2011年9月2号转换为时间戳1314964800,然后是最终代码:

1

<?php echo '我们已经相爱了'.human_time_diff('1314964800', current_time('timestamp')); ?>

登入後複製

PHP法

用PHP进行时间运算的方法我在前面php判断:在指定日期之后触发事件一文中略提过,没什么好解释的直接上代码了:

1

2

3

4

5

<?php $time1=strtotime('2011-09-02');

$time2=time();

$thetime=floor(($time2-$time1)/3600/24) ;//floor()用来取整数位,如果想四舍五入请用round()

echo '我们已经相爱了'.$thetime.'天';

?>

登入後複製

JS法

1

2

3

4

5

6

7

8

<script type="text/javascript">

function thediv(timespan){

var result=Math.floor((new Date()-new Date(timespan))/3600000/24);//new Date(timespan)为开始日时间戳,new Date()为今天,同样取整数,或者Math.round四舍五入

document.getElementById("thediv").innerText="我们已经相爱了"+result+"天";

}

var thetime;

thetime=self.setInterval("thediv('2011/09/02')", 0);

</script>

登入後複製

然后在调用此结果的地方加上<div id="thediv"></div>,效果见小蝴蝶footer.
包子发现了这段js存在问题,setInterval会造成重复执行blahblahblah...尼玛这货在学JS,把我虐的掀起,
下面是第二个被包子虐翻的版本,

1

2

var thediv = function(timespan2){var result=Math.floor((new Date()-new Date(timespan2))/3600000/24);document.getElementById("thediv").innerText="我们已经相爱了"+result+"天";}

var thetime=  self.setTimeout(function(){ thediv('2011/09/02') },  0) ;

登入後複製

尼玛包子说我多此一举!他要我给setTimeout参数匿名,人家以为要单独匿下面一行嘛 :cry:
下面是包子改好的版本:

1

var thetime=self.setTimeout(function(){ var result=Math.floor((new Date()-new Date('2011/09/02'))/3600000/24);document.getElementById("thediv").innerText="我们已经相爱了"+result+"天"; },  0) ;

登入後複製

老娘下次不写js了

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板