iOS时间显示今天昨天
一、前言
今天无意间想起写这个功能,仔细考虑了一下,其实很简单,整体思路如下:
先获取你所要转换的时间的年月日,然后再获取今天和昨天的年月日,然后对比,进而返回不同的字符串。
二、实现步骤
首先,我们设置一下时间格式:
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时间显示今天昨天的更多相关文章
- 【safari挖的那些坑】iOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决
通常 iOS下时间错误表现形式 问题一: 这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用: var date =new Date(); 上面这段代 ...
- IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决
问题一: 项目中遇到一个关于日期时间在ios中乱码在安卓中安然无恙的问题,焦躁了半天 问题如上图,通过用户选择的时间和当天的天数相加然后在ios上就是乱码 这个界面运用了日期类型的计算,当我们用Jav ...
- ios时间显示NaN
问题是当时js里时间是这种格式的 2016-09-07 16:37:50 用var time = obj.replace(/\-/g, "/");将格式改成 2016/09/07 ...
- vue中解决时间在ios上显示NAN的问题
最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:0 ...
- iOS 时间的处理
做App避免不了要和时间打交道,关于时间的处理,里面有不少门道,远不是一行API调用,获取当前系统时间这么简单.我们需要了解与时间相关的各种API之间的差别,再因场景而异去设计相应的机制. 时间的形式 ...
- iOS时间问题
在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等.解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题.这里集中总结一下,以便于以后查阅和供大家参考. ...
- 将时间显示为“刚刚”“n分钟/小时前”等
在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来.比如微博,SNS类应用就最长用到这个功能.而一般存储在数据库中的时间格式为 Uni ...
- ios 时间解析 差8个小时
啥问题也有:小程序中web开发工具里显示时间正常,ios上显示的查8小时 原因: 使用 NSDate *date = [NSDate date]; 获取的时间是标注的UTC时间,和北京时间相差8小时. ...
- IOS日期转为今天昨天形式
近期项目有类似QQ空间展示动态的UI,模仿了QQ空间的时间显示.在此记录,以备查阅. 这是QQ空间的ui: 时间显示为: 1.今天-->今天 xx:xx(今天 15:39) 2.昨天--> ...
随机推荐
- quartz配置参数org.quartz.jobStore.misfireThreshold含义解释
配置定时任务参数 quartz.properties文件时 需要配置jobStore的超过时间数 默认为60秒(这里单位为毫秒) org.quartz.jobStore.misfireThreshol ...
- find 命令参数大全
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- Ajax之跨域访问与JSONP
前言 同源策略的限制,使得ajax无法发出跨域请求.在许多情况下,我们需要让ajax支持跨域.以下是其中一种解决方案(JSONP).JSONP解决了跨域数据访问的问题. 在html中,具有src属性的 ...
- centos swap
SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...
- FFmpeg编解码处理3-视频编码
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584937.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...
- python的Web框架,中间件middleware及djangoAdmin
简介 用于处理request和response的中间处理的函数,可以创建在项目中的任意位置,只要可以导入即可. 建议创建在APP目录下,方便管理. 函数范式与激活 中间件的范式: # 必须接受get_ ...
- JavaScript之破解数独(附详细代码)
在上一篇分享中,我们用Python和Django来破解数独,这对不熟悉Python和Django的人来说是非常不友好的.这次,笔者只用HTML和JavaScript写了破解数独的程序,对于熟悉前端 ...
- 通过webservice(System.Data.OracleClient)调试oracle
环境:vs2008+webservice+net framework3.5+oracle10g 原因:在项目中运行web程序,默认是使用vs内置web服务器(develop server),而这个内置 ...
- asp.net mvc之自定义WebViewPage
采用Razor引擎的View文件最终都会编译成一个WebViewPage类型, 通过自定义WebViewPage,添加相应的属性和方法,你可以很方便的在View里调用, 自定义WebViewPage只 ...
- Python3.7 数字之间下划线
只是为了提高可读性,数值没变. >>> yes_votes = 42_572_6540 ; >>> yes_votes = 42_572_654099 ; > ...