广告
返回顶部
首页 > 资讯 > 移动开发 >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://www.lsjlt.com/news/30346.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • iOS实现秒杀活动倒计时
    IOS关于大型网站抢购、距活动结束,剩余时间倒计时的实现代码,代码比较简单,大家根据需求适当的添加修改删除代码 定义4个 Label 来接收倒计时: @property (we...
    99+
    2022-05-30
    iOS 倒计时
  • vue实现秒杀倒计时组件
    本文实例为大家分享了vue实现秒杀倒计时组件的具体代码,供大家参考,具体内容如下 下面是使用Vue实现秒杀倒计时组件 开发思路 1.请求服务器获取这一刻的服务器时间(统一以服务器时...
    99+
    2022-11-12
  • 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+
    2022-11-13
  • PHP中使用Redis实现秒杀活动
    随着电商行业的发展,秒杀活动成为了各大平台吸引用户的重要方式之一。而随着用户数量的增加,原有的服务器无法承受瞬时的访问量,导致服务器崩溃,无法继续进行秒杀活动。为了解决这一问题,我们可以采用Redis进行秒杀活动的实现。Redis是一个基于...
    99+
    2023-05-16
    PHP redis 秒杀活动
  • jquery如何实现10秒倒计时
    本篇内容介绍了“jquery如何实现10秒倒计时”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • javaScript实现支付10秒倒计时
    本文实例为大家分享了javaScript实现支付10秒倒计时的具体代码,供大家参考,具体内容如下 效果图如下: 这个案例其实很简单,只要掌握了js基础中的onclick函数以及定时...
    99+
    2022-11-12
  • php如何实现10秒倒计时
    这篇文章主要介绍“php如何实现10秒倒计时”,在日常操作中,相信很多人在php如何实现10秒倒计时问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现10秒倒计时”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-06
  • 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+
    2022-10-19
  • 怎么在Linux中实现“时分秒“倒计时功能
    这篇文章给大家介绍怎么在Linux中实现“时分秒“倒计时功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.怎样实现“时分秒“倒计时在Linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法写,只要有逻...
    99+
    2023-06-09
  • 如何实现vue验证码60秒倒计时功能
    小编给大家分享一下如何实现vue验证码60秒倒计时功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下html<...
    99+
    2022-10-19
  • 基于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
  • js实现酷炫倒计时动画
    本文实例为大家分享了js实现酷炫倒计时动画的具体代码,供大家参考,具体内容如下 前段时间和朋友去音乐餐厅吃饭,中间有个活动,然后看到他们软件公众号H5有个活动开始的倒计时的动画效果,...
    99+
    2022-11-13
  • 基于JS如何实现01支付后的10秒倒计时
    这篇文章主要介绍“基于JS如何实现01支付后的10秒倒计时”,在日常操作中,相信很多人在基于JS如何实现01支付后的10秒倒计时问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于JS如何实现01支付后的10秒...
    99+
    2023-07-05
  • Android实现启动页倒计时效果
    目录开始准备 开始动画画圆弧项目使用背景图完整代码今天介绍一个很简单的倒计时动画,仿酷狗音乐的启动页倒计时效果,也是大多数APP在用的一个动画,来看看效果图: 整体的思路就是用一个...
    99+
    2022-11-12
  • WPF实现倒计时转场动画效果
    代码如下 一、创建 CountdownTimer.xaml 继承ContentControl代码如下。 using System; using System.Linq; u...
    99+
    2022-11-13
    WPF倒计时动画 WPF 倒计时 WPF 转场 动画
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作