Swift的中关于时间的判定

在开发过程中,有很多地方会用到时间判断,特别是像发个状态什么的,那么判断发送到现在为止的经历了多少时间计算起来还是个麻烦的事情
下面就用代码来捋一捋这个逻辑

let dateFormatter = NSDateFormatter()
                //判断时间节点
                if NSCalendar.currentCalendar().isDateInToday(date)
                {
                    let components = date.deltaFrom(NSDate())
                    //今天内一个小时以上 显示"xx小时之前"
                    if abs(components.hour) >= 1
                    {
                        created_at = "\(abs(components.hour))" + "小时前"
                    }
                    else if (abs(components.minute) >= 1)
                    {
                        //一个小时以内 显示"xx分钟之前"
                        created_at = "\(abs(components.minute))" + "分钟前"
                    }
                    else
                    {
                        //一分钟以内 显示"刚刚"
                        created_at = "刚刚"
                    }
                }
                else
                {
                    //昨天 显示"昨天 mm:ss"
                    if NSCalendar.currentCalendar().isDateInYesterday(date)
                    {
                        dateFormatter.dateFormat = "HH:mm"
                        created_at = "昨天" + " " + dateFormatter.stringFromDate(date)
                        return
                    }
                    //今年但是不是昨天 显示 MM-dd
                    if !NSCalendar.currentCalendar().isDateInYesterday(date)
                    {
                        dateFormatter.dateFormat = "MM-dd"
                        created_at = dateFormatter.stringFromDate(date)
                        return
                    }
                    //今年以前 yyyy-MM-dd
                    if date.isDateInThisYear()
                    {
                        dateFormatter.dateFormat = "yyyy-MM-dd"
                        created_at = dateFormatter.stringFromDate(date)
                        return
                    }
                }

胥鸿儒

你可能感兴趣的:(Swift的中关于时间的判定)