一、前言

  今天无意间想起写这个功能,仔细考虑了一下,其实很简单,整体思路如下:

  先获取你所要转换的时间的年月日,然后再获取今天和昨天的年月日,然后对比,进而返回不同的字符串。

二、实现步骤

  首先,我们设置一下时间格式:

  NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY年MM月dd日"];
   NSDateFormatter *fo = [[NSDateFormatter alloc] init];
[fo setDateFormat:@"HH:mm"];

  然后我们要获得传过来的时间的年月日和时分:

 //获取传过来的时间的时分
NSString *hoursandSec = [fo stringFromDate:date]; //获取传过来的时间的date
NSString *createDate = [format stringFromDate:date];

  然后获取今天和昨天的年月日:

//获取今天
NSDate *nowDate = [NSDate date];
NSString *today = [format stringFromDate:nowDate]; //获取昨天
NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-(**)];
NSString *yesterday = [format stringFromDate:yesterdayDate];

  然后对比返回数据即可:

 if ([createDate isEqualToString:today]) {
return [NSString stringWithFormat:@"今天%@",hoursandSec];
}else if ([createDate isEqualToString:yesterday])
{
return [NSString stringWithFormat:@"昨天%@",hoursandSec];
}else
{
return [NSString stringWithFormat:@"%@ %@",createDate,hoursandSec];
}

  完成。

三、附加方法源码

/获取时间:今天昨天
+(NSString *)getYMD:(NSDate *)date
{
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY年MM月dd日"]; //获取传过来的时间的时分
NSDateFormatter *fo = [[NSDateFormatter alloc] init];
[fo setDateFormat:@"HH:mm"];
NSString *hoursandSec = [fo stringFromDate:date]; //获取传过来的时间的date
NSString *createDate = [format stringFromDate:date]; //获取今天
NSDate *nowDate = [NSDate date];
NSString *today = [format stringFromDate:nowDate]; //获取昨天
NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-(**)];
NSString *yesterday = [format stringFromDate:yesterdayDate]; if ([createDate isEqualToString:today]) {
return [NSString stringWithFormat:@"今天%@",hoursandSec];
}else if ([createDate isEqualToString:yesterday])
{
return [NSString stringWithFormat:@"昨天%@",hoursandSec];
}else
{
return [NSString stringWithFormat:@"%@ %@",createDate,hoursandSec];
}
}

iOS时间显示今天昨天的更多相关文章

  1. 【safari挖的那些坑】iOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

    通常 iOS下时间错误表现形式 问题一: 这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用: var date =new Date(); 上面这段代 ...

  2. IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

    问题一: 项目中遇到一个关于日期时间在ios中乱码在安卓中安然无恙的问题,焦躁了半天 问题如上图,通过用户选择的时间和当天的天数相加然后在ios上就是乱码 这个界面运用了日期类型的计算,当我们用Jav ...

  3. ios时间显示NaN

    问题是当时js里时间是这种格式的 2016-09-07 16:37:50 用var time = obj.replace(/\-/g, "/");将格式改成 2016/09/07 ...

  4. vue中解决时间在ios上显示NAN的问题

    最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:0 ...

  5. iOS 时间的处理

    做App避免不了要和时间打交道,关于时间的处理,里面有不少门道,远不是一行API调用,获取当前系统时间这么简单.我们需要了解与时间相关的各种API之间的差别,再因场景而异去设计相应的机制. 时间的形式 ...

  6. iOS时间问题

    在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等.解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题.这里集中总结一下,以便于以后查阅和供大家参考. ...

  7. 将时间显示为“刚刚”“n分钟/小时前”等

    在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来.比如微博,SNS类应用就最长用到这个功能.而一般存储在数据库中的时间格式为 Uni ...

  8. ios 时间解析 差8个小时

    啥问题也有:小程序中web开发工具里显示时间正常,ios上显示的查8小时 原因: 使用 NSDate *date = [NSDate date]; 获取的时间是标注的UTC时间,和北京时间相差8小时. ...

  9. IOS日期转为今天昨天形式

    近期项目有类似QQ空间展示动态的UI,模仿了QQ空间的时间显示.在此记录,以备查阅. 这是QQ空间的ui: 时间显示为: 1.今天-->今天 xx:xx(今天 15:39) 2.昨天--> ...

随机推荐

  1. quartz配置参数org.quartz.jobStore.misfireThreshold含义解释

    配置定时任务参数 quartz.properties文件时 需要配置jobStore的超过时间数 默认为60秒(这里单位为毫秒) org.quartz.jobStore.misfireThreshol ...

  2. find 命令参数大全

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  3. Ajax之跨域访问与JSONP

    前言 同源策略的限制,使得ajax无法发出跨域请求.在许多情况下,我们需要让ajax支持跨域.以下是其中一种解决方案(JSONP).JSONP解决了跨域数据访问的问题. 在html中,具有src属性的 ...

  4. centos swap

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...

  5. FFmpeg编解码处理3-视频编码

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584937.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...

  6. python的Web框架,中间件middleware及djangoAdmin

    简介 用于处理request和response的中间处理的函数,可以创建在项目中的任意位置,只要可以导入即可. 建议创建在APP目录下,方便管理. 函数范式与激活 中间件的范式: # 必须接受get_ ...

  7. JavaScript之破解数独(附详细代码)

      在上一篇分享中,我们用Python和Django来破解数独,这对不熟悉Python和Django的人来说是非常不友好的.这次,笔者只用HTML和JavaScript写了破解数独的程序,对于熟悉前端 ...

  8. 通过webservice(System.Data.OracleClient)调试oracle

    环境:vs2008+webservice+net framework3.5+oracle10g 原因:在项目中运行web程序,默认是使用vs内置web服务器(develop server),而这个内置 ...

  9. asp.net mvc之自定义WebViewPage

    采用Razor引擎的View文件最终都会编译成一个WebViewPage类型, 通过自定义WebViewPage,添加相应的属性和方法,你可以很方便的在View里调用, 自定义WebViewPage只 ...

  10. Python3.7 数字之间下划线

    只是为了提高可读性,数值没变. >>> yes_votes = 42_572_6540 ; >>> yes_votes = 42_572_654099 ; > ...