時間戳轉星期.時間和時間戳的相減

BCD7A3A49CAC5F36F8789CE4457D0D29.png

最近項目需要,做一個錢包,里面有個類似支付寶賬單的東西,界面的話就是自定義tableViewcell,數(shù)據(jù)的話,頭像,金錢,名字呀,都是后臺傳的,基本不用做任何操作,直接拿來用,但是時間就不一樣了,后臺傳的是時間戳,但是顯示的話,昨天和今天的時間周期內(nèi),上面顯示昨天或者今天的字樣,下面是時間,超過這個時間范圍顯示星期和日期,這個就需要前端判斷轉為自己需要的東西了,話不多,直接上代碼!!!

時間戳轉時間


//后臺傳過來的時間戳
       NSString* jiezhiTimeString1 =  [NSString  stringWithFormat:@"%@",dict[@"due_time"]];
     
     
    //將后臺傳給的時間戳轉為時間
     
     
     NSInteger num = [jiezhiTimeString1 integerValue]/1000;
     
     NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
     
     [formatter setDateStyle:NSDateFormatterMediumStyle];
     
     [formatter setTimeStyle:NSDateFormatterShortStyle];
     
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//MM-dd
     
     
     NSDate  *confromTimesp = [NSDate dateWithTimeIntervalSince1970:num];
     
     NSString  *shijian = [formatter stringFromDate:confromTimesp];```

####時間戳轉星期(時間戳是當前時間)

//獲得當前時間的時間戳
NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval a=[dat timeIntervalSince1970];
NSString*timeString = [NSString stringWithFormat:@"%0.f", a];//轉為字符型
NSArray *weekday = [NSArray arrayWithObjects: [NSNull null], @"周日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:dat];

NSString *weekStr = [weekday objectAtIndex:components.weekday];```

時間轉時間戳

NSTimeInterval a=[date timeIntervalSince1970]*1000; // *1000 是精確到毫秒,不乘就是精確到秒
 NSString *timeString = [NSString stringWithFormat:@"%.0f", a]; //轉為字符型 ```

####想實現(xiàn)類似支付寶的這個,就是獲得現(xiàn)在的時間戳轉為只有日分,后臺傳過來的也轉為日分,兩個相減,0或者1的話顯示今天或者昨天,其他的話就顯示周幾!

####完整代碼如下(代碼里面的是model數(shù)據(jù))

//后臺傳過來的時間戳
NSString* jiezhiTimeString1 = [NSString stringWithFormat:@"%@",dict[@"due_time"]];

   //將后臺傳給的時間戳轉為時間
    
    
    NSInteger num = [jiezhiTimeString1 integerValue]/1000;
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//MM-dd
    
    
    NSDate  *confromTimesp = [NSDate dateWithTimeIntervalSince1970:num];
    
    NSString  *shijian = [formatter stringFromDate:confromTimesp];

//--------------------

 //將后臺傳給的時間戳轉為日期
    
    NSInteger num1 = [jiezhiTimeString1 integerValue]/1000;
    
    NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
    
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    
    [formatter setDateFormat:@"MM-dd"];//MM-dd
    
    
    NSDate  *confromTimesp1 = [NSDate dateWithTimeIntervalSince1970:num1];
    
    NSString  *riqi = [formatter stringFromDate:confromTimesp1];
    
  // 將后臺傳給的時間戳轉為星期
    
    NSArray *weekday = [NSArray arrayWithObjects: [NSNull null], @"周日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
    
    NSInteger num2 = [jiezhiTimeString1 integerValue]/1000;
  
    NSDate *newDate = [NSDate dateWithTimeIntervalSince1970:num2];
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:newDate];
    
    NSString *weekStr = [weekday objectAtIndex:components.weekday];
 //--------------

    
    //獲得當前時間的時間戳
    NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
    NSTimeInterval a=[dat timeIntervalSince1970];
    NSString*timeString = [NSString  stringWithFormat:@"%0.f", a];//轉為字符型
    
    //兩個時間戳的差轉為日
    NSInteger time1 = [jiezhiTimeString1 integerValue];
    NSInteger time2 = [timeString integerValue];
    NSInteger response = time2 - time1;
    
    NSTimeInterval theResponse = response;
    NSDate * responseTimeInterval = [NSDate dateWithTimeIntervalSince1970:theResponse];
    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd"];//yyyy-MM-dd HH:mm:ss
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];
    NSString * responseTime = [dateFormatter stringFromDate:responseTimeInterval];
    
    if ([responseTime isEqualToString:@"0"]) {
        
   
        _dayStr = @"今天";
        
        _time = shijian;
        
        
        
        
    }else if ([responseTime isEqualToString:@"1"]){
    

      _dayStr = @"昨天";
        
     _time = shijian;
        
        
            
    }else{
        
        
        _dayStr = riqi;
        
        _time = weekStr ;
                 }```
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容