RQMomentHelper.m 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // RQMomentHelper.m
  3. // RQCommon
  4. //
  5. // Created by 张嵘 on 2018/11/23.
  6. // Copyright © 2018 张嵘. All rights reserved.
  7. // 微信朋友圈工具类
  8. #import "RQMomentHelper.h"
  9. @implementation RQMomentHelper
  10. + (NSDateFormatter *)dateFormatter{
  11. static NSDateFormatter *fmt = nil;
  12. /// 由于NSDateFormatter 有一定的性能问题 故全局共享一个
  13. static dispatch_once_t onceToken;
  14. dispatch_once(&onceToken, ^{
  15. fmt = [[NSDateFormatter alloc] init];
  16. fmt.dateFormat = @"EEE MMM dd HH:mm:ss Z yyyy";
  17. /// 真机调试的时候,必须加上这句
  18. fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
  19. });
  20. return fmt;
  21. }
  22. /// 时间转化
  23. + (NSString *)createdAtTimeWithSourceDate:(NSDate *)sourceDate{
  24. if (RQObjectIsNil(sourceDate)) return @"";
  25. // 判断是否为今年
  26. if (sourceDate.rq_isThisYear) {
  27. if (sourceDate.rq_isToday) { // 今天
  28. NSDateComponents *cmps = [sourceDate rq_deltaWithNow];
  29. if (cmps.hour >= 1) { // 至少是1小时前发的
  30. return [NSString stringWithFormat:@"%zd小时前", cmps.hour];
  31. } else if (cmps.minute >= 1) { // 1~59分钟之前发的
  32. return [NSString stringWithFormat:@"%zd分钟前", cmps.minute];
  33. }else { // 1分钟内发的
  34. return @"刚刚";
  35. }
  36. } else if (sourceDate.rq_isYesterday) { // 昨天
  37. self.dateFormatter.dateFormat = @"昨天 HH:mm";
  38. return [self.dateFormatter stringFromDate:sourceDate];
  39. } else { // 至少是前天
  40. [self dateFormatter].dateFormat = @"MM-dd HH:mm";
  41. return [self.dateFormatter stringFromDate:sourceDate];
  42. }
  43. } else { // 非今年
  44. self.dateFormatter.dateFormat = @"yyyy-MM-dd";
  45. return [self.dateFormatter stringFromDate:sourceDate];
  46. }
  47. }
  48. /// 电话号码正则
  49. + (NSRegularExpression *)regexPhoneNumber{
  50. static NSRegularExpression *regex;
  51. static dispatch_once_t onceToken;
  52. dispatch_once(&onceToken, ^{
  53. regex = [NSRegularExpression regularExpressionWithPattern:@"\\d{3,4}[- ]?\\d{7,8}" options:kNilOptions error:NULL];
  54. });
  55. return regex;
  56. }
  57. /// 链接正则
  58. + (NSRegularExpression *)regexLinkUrl{
  59. static NSRegularExpression *regex;
  60. static dispatch_once_t onceToken;
  61. dispatch_once(&onceToken, ^{
  62. regex = [NSRegularExpression regularExpressionWithPattern:@"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)" options:kNilOptions error:NULL];
  63. });
  64. return regex;
  65. }
  66. + (void)hideAllPopViewWithAnimated:(BOOL)animated{
  67. /// 关掉更多View
  68. // [RQMomentOperationMoreView hideAllOperationMoreViewWithAnimated:animated];
  69. /// 关闭键盘
  70. if(RQSharedAppDelegate.isShowKeyboard){ [[UIApplication sharedApplication].keyWindow endEditing:YES]; }
  71. }
  72. @end