返回顶部
首页 > 资讯 > 移动开发 >iOS实现秒杀活动倒计时
  • 785
分享到

iOS实现秒杀活动倒计时

iOS倒计时 2022-05-30 22:05:14 785人浏览 安东尼
摘要

iOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码,代码比较简单,大家根据需求适当的添加修改删除代码 定义4个 Label 来接收倒计时: @property (we

iOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码,代码比较简单,大家根据需求适当的添加修改删除代码

定义4个 Label 来接收倒计时:


@property (weak, nonatomic) IBOutlet UILabel *dayLabel;
@property (weak, nonatomic) IBOutlet UILabel *hourLabel;
@property (weak, nonatomic) IBOutlet UILabel *minuteLabel;
@property (weak, nonatomic) IBOutlet UILabel *secondLabel;

在实现文件中实现方法:


//时间戳转换为日期格式(毫秒的时间戳)
- (NSString *)timeWithTimeIntervalString:(NSString *)timeString
{
  // 格式化时间
  NSDateFORMatter* formatter = [[NSDateFormatter alloc] init];
  formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"];
  [formatter setDateStyle:NSDateFormatterMediumStyle];
  [formatter setTimeStyle:NSDateFormatterShortStyle];
  [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

  // 毫秒值转化为秒
  NSDate* date = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/ 1000.0];
  NSString* dateString = [formatter stringFromDate:date];
  NSLog(@"时间 === %@",dateString);
  return dateString;
}
-(void)downSecondHandle:(NSString *)aTimeString{

  NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
  [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];


  NSDate *endDate = [dateFormatter dateFromString:[self timeWithTimeIntervalString:aTimeString]]; //结束时间
  NSDate *endDate_tomorrow = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:([endDate timeIntervalSinceReferenceDate])];
  NSDate *startDate = [NSDate date];
    NSString* dateString = [dateFormatter stringFromDate:startDate];
  NSLog(@"现在的时间 === %@",dateString);
  NSTimeInterval timeInterval =[endDate_tomorrow timeIntervalSinceDate:startDate];

  if (_timer==nil) {
    __block int timeout = timeInterval; //倒计时时间

    if (timeout!=0) {
      dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRioRITY_DEFAULT, 0);
      _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
      dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
      dispatch_source_set_event_handler(_timer, ^{
        if(timeout<=0){ //倒计时结束,关闭
          dispatch_source_cancel(_timer);
          _timer = nil;
          dispatch_async(dispatch_get_main_queue(), ^{
            self.dayLabel.text = @"";
            self.hourLabel.text = @"00";
            self.minuteLabel.text = @"00";
            self.secondLabel.text = @"00";
          });
        }else{
          int days = (int)(timeout/(3600*24));
          if (days==0) {
            self.dayLabel.text = @"";
          }
          int hours = (int)((timeout-days*24*3600)/3600);
          int minute = (int)(timeout-days*24*3600-hours*3600)/60;
          int second = timeout-days*24*3600-hours*3600-minute*60;
          dispatch_async(dispatch_get_main_queue(), ^{
            if (days==0) {
              self.dayLabel.text = @"0天";
            }else{
              self.dayLabel.text = [NSString stringWithFormat:@"%d天",days];
            }
            if (hours<10) {
              self.hourLabel.text = [NSString stringWithFormat:@"0%d",hours];
            }else{
              self.hourLabel.text = [NSString stringWithFormat:@"%d",hours];
            }
            if (minute<10) {
              self.minuteLabel.text = [NSString stringWithFormat:@"0%d",minute];
            }else{
              self.minuteLabel.text = [NSString stringWithFormat:@"%d",minute];
            }
            if (second<10) {
              self.secondLabel.text = [NSString stringWithFormat:@"0%d",second];
            }else{
              self.secondLabel.text = [NSString stringWithFormat:@"%d",second];
            }

          });
          timeout--;
        }
      });
      dispatch_resume(_timer);
    }
  }


}

在需要出使用:


[self downSecondHandle:@"1494622800000"];

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: iOS实现秒杀活动倒计时

本文链接: https://lsjlt.com/news/30346.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • iOS实现秒杀活动倒计时
    IOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码,代码比较简单,大家根据需求适当的添加修改删除代码 定义4个 Label 来接收倒计时: @property (we...
    99+
    2022-05-30
    iOS 倒计时
  • vue实现秒杀倒计时组件
    本文实例为大家分享了vue实现秒杀倒计时组件的具体代码,供大家参考,具体内容如下 下面是使用Vue实现秒杀倒计时组件 开发思路 1.请求服务器获取这一刻的服务器时间(统一以服务器时...
    99+
    2024-04-02
  • jquery 倒计时效果实现秒杀思路
    复制代码 代码如下: <script type="text/javascript"> $(function(){ countDown("2015/9/8 11:11:59...
    99+
    2022-11-15
    jquery 倒计时
  • JavaScript如何仿京东实现秒杀倒计时
    这篇文章主要为大家展示了“JavaScript如何仿京东实现秒杀倒计时”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何仿京东实现秒杀倒计时”这篇文章吧。功能介绍:这个倒计时...
    99+
    2023-06-29
  • JavaScript仿京东实现秒杀倒计时案例详解
    功能介绍: 1、这个倒计时是不断变化的,因此需要定时器来自动变化(setInterval) 2、三个黑色的盒子,分别存放时、分秒 3、三个盒子利用innerHTML存入倒计时 &l...
    99+
    2024-04-02
  • PHP中使用Redis实现秒杀活动
    随着电商行业的发展,秒杀活动成为了各大平台吸引用户的重要方式之一。而随着用户数量的增加,原有的服务器无法承受瞬时的访问量,导致服务器崩溃,无法继续进行秒杀活动。为了解决这一问题,我们可以采用Redis进行秒杀活动的实现。Redis是一个基于...
    99+
    2023-05-16
    PHP redis 秒杀活动
  • jquery如何实现10秒倒计时
    本篇内容介绍了“jquery如何实现10秒倒计时”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • javaScript实现支付10秒倒计时
    本文实例为大家分享了javaScript实现支付10秒倒计时的具体代码,供大家参考,具体内容如下 效果图如下: 这个案例其实很简单,只要掌握了js基础中的onclick函数以及定时...
    99+
    2024-04-02
  • php如何实现10秒倒计时
    这篇文章主要介绍“php如何实现10秒倒计时”,在日常操作中,相信很多人在php如何实现10秒倒计时问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现10秒倒计时”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-06
  • vue如何设计一个倒计时秒杀的组件
    这篇文章将为大家详细讲解有关vue如何设计一个倒计时秒杀的组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。简介:倒计时秒杀组件在电商网站中层出不穷  不过思路...
    99+
    2024-04-02
  • php消息队列怎么实现秒杀活动
    实现秒杀活动的关键是处理高并发请求,确保商品库存不被超卖。可以利用消息队列来实现秒杀活动,以下是一种简单的实现方式: 创建一个商品...
    99+
    2024-04-02
  • iOS实现短信验证码倒计时
    在开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件) 一、利用NSTimer计时器 新建一个UIButton按钮...
    99+
    2022-05-30
    iOS 短信 验证码
  • Linux用脚本实现“时分秒“倒计时功能
    1.怎样实现“时分秒“倒计时 在linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法写,只要有逻辑就可以了。 示例: 注意: clean的功能 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻...
    99+
    2022-06-04
    linux 时分秒倒计时 linux 倒计时
  • JavaScript如何实现输入分钟、秒倒计时
    这篇文章主要介绍JavaScript如何实现输入分钟、秒倒计时,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:<div class="contain...
    99+
    2024-04-02
  • 怎么在Linux中实现“时分秒“倒计时功能
    这篇文章给大家介绍怎么在Linux中实现“时分秒“倒计时功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.怎样实现“时分秒“倒计时在Linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法写,只要有逻...
    99+
    2023-06-09
  • JavaScript实现限时秒杀功能
    本文实例为大家分享了JavaScript实现限时秒杀功能的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <he...
    99+
    2024-04-02
  • js实现酷炫倒计时动画
    本文实例为大家分享了js实现酷炫倒计时动画的具体代码,供大家参考,具体内容如下 前段时间和朋友去音乐餐厅吃饭,中间有个活动,然后看到他们软件公众号H5有个活动开始的倒计时的动画效果,...
    99+
    2024-04-02
  • 如何实现vue验证码60秒倒计时功能
    小编给大家分享一下如何实现vue验证码60秒倒计时功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下html<...
    99+
    2024-04-02
  • 基于JS实现01支付后的10秒倒计时
    这是一个通过js实现的支付后的页面,点击支付会跳出一个弹窗,提示你是否要确定支付,确定后进入付后界面,该页面有着10秒倒计时,计时结束后便会返回原界面。也可以选择立刻返回,来返回主页...
    99+
    2023-05-13
    js 10秒倒计时 js 支付倒计时 js倒计时
  • vue怎么实现验证码60秒倒计时功能
    本文小编为大家详细介绍“vue怎么实现验证码60秒倒计时功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么实现验证码60秒倒计时功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。html代码如下:&l...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作