iOS_时间戳与日期转换(几分钟前)

mark for myself.

时间戳转时间的时候,经常会遇到要转换成几分钟前的类型。比如最新品论发表于“一分钟前”或者“十分钟前”等。

以下为自己开发过程中遇到的时间戳转换成该类型字符串和其他时间戳与日期转换的方法封装:

#define mark - 时间
/**
 *  时间戳转成字符串
 *
 *  @param timestamp 时间戳
 *
 *  @return 格式化后的字符串
 */
+ (NSString *)timeFromTimestamp:(NSInteger)timestamp{

    NSDateFormatter *dateFormtter =[[NSDateFormatter alloc] init];
    NSDate *d = [NSDate dateWithTimeIntervalSince1970:timestamp];
    NSTimeInterval late=[d timeIntervalSince1970]*1;    //转记录的时间戳
    NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
    NSTimeInterval now=[dat timeIntervalSince1970]*1;   //获取当前时间戳
    NSString *[email protected]"";
    NSTimeInterval cha=now-late;
    // 发表在一小时之内
    if (cha/3600<1) {
        if (cha/60<1) {
            timeString = @"1";
        }
        else
        {
            timeString = [NSString stringWithFormat:@"%f", cha/60];
            timeString = [timeString substringToIndex:timeString.length-7];
        }

        timeString=[NSString stringWithFormat:@"%@分钟前", timeString];
    }
    // 在一小时以上24小以内
    else if (cha/3600>1&&cha/86400<1) {
        timeString = [NSString stringWithFormat:@"%f", cha/3600];
        timeString = [timeString substringToIndex:timeString.length-7];
        timeString=[NSString stringWithFormat:@"%@小时前", timeString];
    }
    // 发表在24以上10天以内
    else if (cha/86400>1&&cha/86400*3<1)     //86400 = 60(分)*60(秒)*24(小时)   3天内
    {
        timeString = [NSString stringWithFormat:@"%f", cha/86400];
        timeString = [timeString substringToIndex:timeString.length-7];
        timeString=[NSString stringWithFormat:@"%@天前", timeString];
    }
    // 发表时间大于10天
    else
    {
        [dateFormtter setDateFormat:@"yyyy-MM-dd"];
        timeString = [dateFormtter stringFromDate:d];
    }

    return timeString;
}
/**
 *  根据格式将时间戳转换成时间
 *
 *  @param timestamp    时间戳
 *  @param dateFormtter 日期格式
 *
 *  @return 带格式的日期
 */
+ (NSString *)timeFromTimestamp:(NSInteger)timestamp formtter:(NSString *)formtter{
    NSDateFormatter *dataFormtter =[[NSDateFormatter alloc] init];
    [dataFormtter setDateFormat:formtter];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp];
    NSString *time = [dataFormtter stringFromDate:date];
    return time;
}

/**
 *  获取当前时间戳
 */
+ (NSString *)timeIntervalGetFromNow{

    // 获取时间(非本地时区,需转换)
    NSDate * today = [NSDate date];
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate:today];
    // 转换成当地时间
    NSDate *localeDate = [today dateByAddingTimeInterval:interval];
    // 时间转换成时间戳
    NSString *timeSp = [NSString stringWithFormat:@"%ld",(long)[localeDate timeIntervalSince1970]];

    return timeSp;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 12:45:20

iOS_时间戳与日期转换(几分钟前)的相关文章

php日期转时间戳,指定日期转换成时间戳

写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但 是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式. 一.在MySQL中完成 这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性. 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式:sele

JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式

var minute = 1000 * 60; var hour = minute *60; var day = hour *24; var week = day * 7; var month = day * 30; function getTimer(stringTime){ var time1 = new Date().getTime();//当前的时间戳 console.log(time1); var time2 = Date.parse(new Date(stringTime));//指

php时间戳和日期转换,以及时间戳和星期转换

$this->created_at为时间戳值,转换日期如下 date('m.d',$this->created_at) :  y 代表年的后两位如 17 ,Y 代表 2017  , m 代表数字月,M 代表英文月 ,d代表日,D代表星期 (英文的) 想要显示中文星期,则要: $weeks =['周一','周二','周三','周四','周五','周六','周日']; $weeks[date('w',$this->created_at)]; 就会显示周几.

用php判断时间戳来输出刚刚,分钟前,小时前昨天和时间

function T($time) {    //获取今天凌晨的时间戳    $day = strtotime(date('Y-m-d',time()));    //获取昨天凌晨的时间戳    $pday = strtotime(date('Y-m-d',strtotime('-1 day')));    //获取现在的时间戳    $nowtime = time();        $tc = $nowtime-$time;    if($time<$pday){       $str = 

JS /jquery 时间戳与日期转换

(function($) { $.extend({ myTime: { /** * 当前时间戳 * @return <int> unix时间戳(秒) */ CurTime: function(){ return Date.parse(new Date())/1000; }, /** * 日期 转换为 Unix时间戳 * @param <string> 2014-01-01 20:20:20 日期格式 * @return <int> unix时间戳(秒) */ DateT

时间戳和日期转换

注意: js 时间日期只识别 "2016/05/24" 格式 //日期转时间戳 var end = "2016-05-24"; end = end.replace(/-/g,'/'); var end_date = new Date(end); var time = end_date.getTime(); //日期格式转换 var newDate = "2016/05/24"; var newDate = new Date(newDate); n

js中时间戳与日期转换-js日期操作

常用的一些日期操作. 用js获取一个时间戳. <script type="text/javascript"> var date = new Date();//当前时间 alert(date.getTime());//转化的时间戳 </script> 得到的数值其实是从1970-1-1到当前的时间的毫秒数. <script type="text/javascript"> alert(new Date("1970-01-01

jquery 时间戳与日期转换

(function($) { $.extend({ myTime: { /** * 当前时间戳 * @return <int> unix时间戳(秒) */ CurTime: function(){ return Date.parse(new Date())/1000; }, /** * 日期 转换为 Unix时间戳 * @param <string> 2014-01-01 20:20:20 日期格式 * @return <int> unix时间戳(秒) */ DateT

PHP时间戳和日期转换

获取当前时间 <?php var_dump(time()); //获取当前时间戳 int(1502245603) 时间戳转换为时间,可以用date('Y-m-s h:i:s', 具体时间戳来实现). Y :年(四位数)大写 m : 月(两位数,首位不足补0) 小写 d :日(两位数,首位不足补0) 小写 H:小时 带有首位零的 24 小时小时格式 h :小时 带有首位零的 12 小时小时格式 i :带有首位零的分钟 s :带有首位零的秒(00 -59) a:小写的午前和午后(am 或 pm) 原