Many a times, in an iPhone application, you might need to format the date relative to today. This code snippet will help you do it.

+ (NSString *) formattedDateRelativeToNow:(NSDate *)date
{
		NSDateFormatter *mdf = [[NSDateFormatter alloc] init];
	[mdf setDateFormat:@"yyyy-MM-dd"];
	NSDate *midnight = [mdf dateFromString:[mdf stringFromDate:date]];
	[mdf release];
 
	NSInteger dayDiff = (int)[midnight timeIntervalSinceNow] / (60*60*24);	
	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];	
 
	if(dayDiff == 0) 
		[dateFormatter setDateFormat:@"'Today, 'h':'mm aaa"];
	else if(dayDiff == -1) 
		[dateFormatter setDateFormat:@"'Yesterday, 'h':'mm aaa"];
	else if(dayDiff == -2) 
		[dateFormatter setDateFormat:@"MMMM d', Two days ago'"]; 	
	else if(dayDiff > -7 && dayDiff <= -2) 
		[dateFormatter setDateFormat:@"MMMM d', This week'"]; 
	else if(dayDiff > -14 && dayDiff <= -7) 
		[dateFormatter setDateFormat:@"MMMM d'; Last week'"]; 
	else if(dayDiff >= -60 && dayDiff <= -30) 
		[dateFormatter setDateFormat:@"MMMM d'; Last month'"]; 
	else if(dayDiff >= -90 && dayDiff <= -60) 
		[dateFormatter setDateFormat:@"MMMM d'; Within last three months'"]; 
	else if(dayDiff >= -180 && dayDiff <= -90) 
		[dateFormatter setDateFormat:@"MMMM d'; Within last six months'"]; 
	else if(dayDiff >= -365 && dayDiff <= -180) 
		[dateFormatter setDateFormat:@"MMMM d, YYYY'; Within this year'"]; 
	else if(dayDiff < -365) 
		[dateFormatter setDateFormat:@"MMMM d, YYYY'; A long time ago'"];
 
	return [dateFormatter stringFromDate:date];
}

Link back if you liked it…



–Mugunth

If you enjoyed this post, make sure you subscribe to my RSS feed!

Related posts:

  1. bit.ly wrapper for Objective-C/iPhone Continuing from my part 1, in this section, we will...
  2. Consuming a RESTful Service (bit.ly) in an iPhone Application bit-ly-rest-api-objective-c Introduction Of late, many programmers who develop for Windows/Linux...
  3. iPhone Tutorial: How to send In-App SMS Officially, iPhone OS 4 is out of NDA and I...
  4. iPhone Tutorial – In-App Purchases Last week, Apple announced that in-app purchases will be available...
  5. iPhone Tutorial: Follow Cost API and a open source wrapper What is Follow Cost? Follow Cost is a interesting and...

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

One Response to “Formatting Dates relative to Now – Objective C (iPhone)”

  1. Pretty impressive article. I just came across your site and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.

Leave a Reply