如何为特定当地日管理所有时区用户的定期事件?

时间:2015-12-31 09:53:50

标签: date parse-platform timezone cloud-code recurring-events

我正在尝试为iOS开发一个与调度程序和日历相关的事件应用程序。使用在线数据库(解析数据库)进行商店活动&用户详细信息。

详情:

  • 一位用户为特定日期创建活动(即每个星期一,从特定日期开始,为期5周),并邀请其他用户参加活动。

  • 事件仅在所有用户的定义天数内有效,即如果事件日是星期一,那么事件仅在星期一对所有用户的星期一(当地时间)有效。

问题:如何根据当地时间检查用户的活动是否有效?   desc:如果事件日是星期五(2016年1月1日),那么事件仅对星期五(2016年1月1日)的所有用户有效,即用户当地时间是星期五(2016年1月1日)然后事件处于活动状态用户。所有其他用户都一样。

如何在服务器数据库上维护此功能并通知用户事件今天是否有效? 我正在使用解析数据库,所有这些逻辑都是使用Cloud Code在Parse上实现的。

编辑:我尝试根据UTC时区激活事件。对于上面的示例,事件在2016年1月1日00:00:00.000Z激活,在2016年2月1日00:00:00.000Z结束。这适用于UTC + 00的用户,但对于UTC + 5:30的用户,活动在1/1/2016 05:30:00激活,并在2016年2月1日5:30:00关闭。但事件应仅在2016年1月1日00:00:00至2/1/2016 00:00:00之间激活。具有不同时区的所有用户都存在同样的问题。

1 个答案:

答案 0 :(得分:0)

//尝试并比较以下给出的日期当更改时区,然后按照01/01/2016 00:00:00%@获取类似UTC,GMT等......

  NSDateFormatter *formated = [[NSDateFormatter alloc] init];
  formated.dateFormat = @"dd/MM/yyyy HH:mm:ss zzz";
  NSDate *utc = [formated dateFromString:@"01/01/2016 00:00:00 UTC"];
  formated.timeZone = [NSTimeZone systemTimeZone];
  NSString *local = [formated stringFromDate:utc];
  NSLog(@"%@", local);



  NSDateFormatter *formated2 = [[NSDateFormatter alloc] init];
  formated2.dateFormat = @"dd/MM/yyyy HH:mm:ss zzz";
  NSDate *utc2 = [formated2 dateFromString:@"02/01/2016 00:00:00 UTC"];
  formated2.timeZone = [NSTimeZone systemTimeZone];
  NSString *local2 = [formated2 stringFromDate:utc2];
  NSLog(@"%@", local2);