因此,在我的项目中,来自美国的用户设定了一些时间说它是上午10:30 现在,当某个人看到那个时间,然后应该根据他们的时区。
例如美国的例子现在是早上5:30 在印度它是下午6:30,所以如果在5个小时之后,印度的一个人看到那个人应该在下午6:30看到那个帖子
答案 0 :(得分:0)
使用php函数gmdate()
string gmdate(string $ format [,int $ timestamp = time()])
与date()函数相同,但返回的时间是格林威治标准时间(GMT)。
参数format输出日期字符串的格式。请参阅date()函数的格式设置选项。 timestamp可选的timestamp参数是整数Unix时间戳,如果未给出时间戳,则默认为当前本地时间。换句话说,它默认为time()的值。返回值返回格式化的日期字符串。如果将非数字值用于时间戳,则返回FALSE并发出E_WARNING级别错误。
在timestamp中添加间隔。
例如,如果GMT区域为5,则添加时间戳+ 5 * 60 * 60
答案 1 :(得分:0)
使用以下功能:
class func getDateWithFormat(format: String) -> NSDate {
var dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone.localTimeZone()
dateFormatter.dateFormat = format
var newDate: NSDate = dateFormatter.dateFromString(dateFormatter.stringFromDate(NSDate()))
return newDate
}
例如:var todaysDate:NSDate = NSDate.getDateWithFormat(" dd:mm:yyyy hh:mm:ss a")
答案 2 :(得分:0)
我创建了以下函数来解决这个问题。 工作原理:假设这是您转换为GMT零的当地时间 - 2016-04-14 21:00:00 +0000
当我使用以下功能进行转换时,我在新德里印度,格林威治标准时间+05:30,然后我将在凌晨2:30获得时间。
+(NSString*)getLocalTimeFromGMTzero : (NSString*)GMTzerioTimeString {
NSDateFormatter *df = [NSDateFormatter new];
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
//Create the date assuming the given string is in GMT
df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSDate *date = [df dateFromString:GMTzerioTimeString];
//Create a date string in the local timezone
df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:[NSTimeZone localTimeZone].secondsFromGMT];
NSString *localDateString = [df stringFromDate:date];
NSLog(@"date = %@", localDateString);
return localDateString;
}