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.昨天--> ...
随机推荐
- rabbitMQ和对应的erlang版本匹配
来源自https://www.rabbitmq.com/which-erlang.html erlang安装包下载地址 https://packages.erlang-solutions.com/er ...
- Redis 内存模型
了解 Redis 的 5 种对象类型(字符串.哈希.列表.集合.有序集合)的用法和特点的基础,了解 Redis 的内存模型,对 Redis 的使用有很大帮助,例如: 估算 Redis 内存使用量.内存 ...
- leetcode — valid-parentheses
import java.util.Stack; /** * Source : https://oj.leetcode.com/problems/valid-parentheses/ * * Creat ...
- javascript中的iterable
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Array.Map和Set都属于iterable类型. 具有iterabl ...
- Layui上传图片 带接口
layui.use('upload', function () { var upload = layui.upload; upload.render({ elem: '#LAY_avatarUploa ...
- c# 数组协变
class a{} class b:a{} a[] arr=new a[3]; a[] arr2=new a[3]; 给arr 数组赋值 arr[0]=new a(); arr2[0]=new b() ...
- 菜鸟入门【ASP.NET Core】13:Individual authentication 模板、EF Core Migration
Individual authentication 模板 我们首先用VSCode新建一个mvc的网站,这个网站创立的时候回自动为我们创建Identuty Core以及EF Core的代码示例,我们可以 ...
- 聚簇索引(聚集索引) 不可作用于GUID类型字段
聚簇索引(又名聚集索引) 不可作用于GUID类型字段,即:数据库中不要把GUID类型作为主键或设置为聚集索引. 聚集索引:索引的物理存储顺序与数据表中行数据物理存储顺序一致(索引存储物理有序). 非聚 ...
- JAVA的高并发基础认知 一
一.多线程的基本知识 1.1进程与线程的介绍 程序运行时在内存中分配自己独立的运行空间,就是进程 线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间. 进程是负责整个程序的运行,而线程是 ...
- Oracle总结二
1 where子句 Where子句的作用:用where子句来指定查询条件 1.1 用法示例 select * from emp where deptno=10; select * from emp w ...