swift 日期比较

    //1、一个小时内:  xx分钟前

    //2、今天之内     HH:mm

    //3、今年之内:   MM-dd HH:mm

    //4、其他年份:   yy-MM-dd

func compareForNowWith(_ date: Date) -> String {
        
        // switch NSDate to String
        let nowDateString = LWDateManager.switchToStringFrom(Date(), dateFormat: "yyyy-MM-dd HH:mm:ss")!
        let targetDateString = LWDateManager.switchToStringFrom(date, dateFormat: "yyyy-MM-dd HH:mm:ss")!
        
        // Compare two date string
        if (nowDateString as NSString).substring(with: NSMakeRange(2, 2)) == (targetDateString as NSString).substring(with: NSMakeRange(2, 2)) {
            
            //在同一年内
            if (nowDateString as NSString).substring(with: NSMakeRange(5, 5)) == (targetDateString as NSString).substring(with: NSMakeRange(5, 5)) {
                
                //同一天内
                let distanceInterval = -date.timeIntervalSinceNow
                let oneHourInterval = 60*60 as TimeInterval
                if oneHourInterval < distanceInterval {
                    
                    //在同一个小时内
                    if distanceInterval/60 < 1 {
                        
                        //在一分钟内
                        return NSLocalizedString("不到1分钟前", comment: "")
                        
                    } else {
                        //在同一小时,但不在同一分钟内
                        return "\(distanceInterval/60)分钟前"
                    }
                    
                } else {
                    //在同一天,但不在同一个小时内
                    return NSLocalizedString("不到1分钟前", comment: "") + (targetDateString as NSString).substring(with: NSMakeRange(11, 5))
                }
            
            } else {
                //同一年内,但不在同一天
                return (targetDateString as NSString).substring(with: NSMakeRange(5, 11))
            }
            
        } else {
            //不在同一年内
            return (targetDateString as NSString).substring(with: NSMakeRange(2, 8))
        }
        
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值