gpt4 book ai didi

php实现倒计时效果

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php实现倒计时效果由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

现在很多的团购网站上都有剩余时间的显示。显示剩余时间可以使用Javascript来实现,但是我们会发现使用Javascript来实现的话不安全,因为Javascript获取的是客户端的时间。比方说,这次团购已经结束了,但是懂技术的访客只要修改他客户端电脑的时间就又显示该商品还可以购买。很明显,这不是我们网站设计的初衷。团购结束了就不可以再购买啦。这里写了一个考试系统剩余时间倒计时的显示代码和大家一起探讨.

实现原理: PHP获取的是服务器端的时间,我们只要设置考试的开始时间和结束时间及当前时间。如果当前的时间不在我们的考试时间范围内,则显示给考生“当前不在考试时间段!”。如果在考试时间范围内,则获取当前时间,结束时间减掉当前时间就是剩余的时间,将剩余时间格式化输出就是“剩余考试时间:2小时56分32秒”这样的形式。服务器端获得了剩余时间后,我们还要在客户端动态的显示剩余时间的倒计时。这就需要用AJAX来实现了。在开始前大家先熟悉几个函数吧! 。

PHP函数: strtotime(); //将任何英文日期转换为时间戳 floor(); //舍去法取整,和int()强制转换相识 json_encode() //对变量进行JSON编码,返回字符串 。

简单的剩余天数计算:

php" id="highlighter_426261">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
date_default_timezone_set( 'Asia/Hong_Kong' );
$startDate = '2015-8-11' ;
$endDate = '2015-8-31' ;
 
// 将日期转换为Unix时间戳
$startDateStr = strtotime ( $startDate );
$endtDateStr = strtotime ( $endDate );
$total = $endtDateStr - $startDateStr ;
 
$now = strtotime ( date ( 'Y-m-d' ));
$remain = $endtDateStr - $now ;
 
echo '为期:' . $total /(3600*24). '天<br>' ;
echo '剩余:' . $remain /(3600*24). '天' ;

效果:

php实现倒计时效果

简单的剩余时间计算:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
date_default_timezone_set( 'Asia/Hong_Kong' );
$startTime = '09:00:00' ;
$endTime = '18:00:00' ;
 
// 将时间转化为unix时间戳
$startTimeStr = strtotime ( $startTime );
$endTimeStr = strtotime ( $endTime );
$total = $endTimeStr - $startTimeStr ;
 
$restHours = 1; // 休息1小时
 
$now = strtotime ( date ( 'H:i:s' ));
$remain = $endTimeStr - $now ;
 
echo '上班时间:' .( $total /3600- $restHours ). '小时<br>' ;
echo '还有:' . floor (( $remain /3600)). '小时' . floor ( $remain /60). '分钟下班' ;

效果:

php实现倒计时效果

前后端配合实现考试剩余时间:

HTML布局 。

考试剩余时间:

复制代码 代码如下:
<span id="hour">00</span>小时<span id="minute">00</span>分<span id="second">00</span>秒

  。

JS脚本 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function dealData(id,value){
   var place = document.getElementById(id);
   place.innerHTML = value;
}
window.setInterval( function (){ // 每秒从服务器取一次数据
   var ajax = new Ajax();
   ajax.get( "remain_time.php?a=" +Math.random(), function (data){
   eval( "var dtime = " +data);
   dealData( 'hour' ,dtime.hour);
   dealData( 'minute' ,dtime.minute);
   dealData( 'second' ,dtime.second);
  });
},1000);

PHP代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
date_default_timezone_set( 'PRC' );
$start_time = '09:00:00' ;
$end_time = '18:00:00' ;
$start_famate_time = strtotime ( $start_time ); //开始时间转化为时间戳
$end_famate_time = strtotime ( $end_time ); //结束时间转化为时间戳
$now_time = time();
if ( $end_famate_time < $now_time || $start_time > $now_time ){
  echo '当前不在考试的时间范围内!' ;
  exit ;
}
$remain_time = $end_famate_time - $now_time ; //剩余的秒数
$remain_hour = floor ( $remain_time /(60*60)); //剩余的小时
$remain_minute = floor (( $remain_time - $remain_hour *60*60)/60); //剩余的分钟数
$remain_second = ( $remain_time - $remain_hour *60*60 - $remain_minute *60); //剩余的秒数
echo json_encode( array ( 'hour' => $remain_hour , 'minute' => $remain_minute , 'second' => $remain_second ));

以上就是php实现倒计时的关键代码,希望对大家的学习有所帮助.

最后此篇关于php实现倒计时效果的文章就讲到这里了,如果你想了解更多关于php实现倒计时效果的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com