如何在iOS应用程序和PhP API之间发送和转换回UTC时间戳?
我和我的PhP开发人员面临转换日期和时间的问题 我在做什么: 在我的应用程序中,我每天都在执行活动,这些活动将保存到服务器中。为了知道特定活动的日期和时间,我传递UTC时间戳(基于日期) PhP开发人员正在做什么: 他正在根据UTC时间戳(我将其传递到API中)创建一个日期(采用如何在iOS应用程序和PhP API之间发送和转换回UTC时间戳?,php,ios,date,Php,Ios,Date,我和我的PhP开发人员面临转换日期和时间的问题 我在做什么: 在我的应用程序中,我每天都在执行活动,这些活动将保存到服务器中。为了知道特定活动的日期和时间,我传递UTC时间戳(基于日期) PhP开发人员正在做什么: 他正在根据UTC时间戳(我将其传递到API中)创建一个日期(采用yyy-MM-dd格式)。并将实际时间戳存储在另一列中 问题是,在我的应用程序中,当我试图根据特定日期获取活动时,他根据存储的日期对活动进行分组。并将返回我的结果集 但我面临的问题是 我传递给服务器的内容不会返回 例如
yyy-MM-dd
格式)。并将实际时间戳存储在另一列中
问题是,在我的应用程序中,当我试图根据特定日期获取活动时,他根据存储的日期对活动进行分组。并将返回我的结果集
但我面临的问题是
我传递给服务器的内容不会返回
例如
goodTimestamp=1442342364(我通过的)
badTimestamp=1442275200(根据存储在服务器数据库中的日期进行转换的内容)
若你们链接到站点并选中convert timestamp to a date,那个么你们就会知道两者都显示了这个日期
有效日期=2015年9月15日星期二18:39:24 GMT
错误日期=2015年9月15日星期二00:00:00 GMT
因此,我得到了一个错误的结果。我于2015年9月16日上午12:09执行了一项活动。但是我没有得到正确的结果
我们应该如何通过继续相同的流程(从应用程序)来实现相同的日期和时间
我创建了一个测试代码来检查日期是否正确
NSString *badTimestamp = @"1442275200";
NSString *goodTimestamp = @"1442342364";
NSDate *goodDate = [NSDate dateWithTimeIntervalSince1970:[goodTimestamp doubleValue]];
NSDate *badDate = [NSDate dateWithTimeIntervalSince1970:[badTimestamp doubleValue]];
NSDateComponents *goodComponents = [[NSCalendar currentCalendar] components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ) fromDate:goodDate];
NSDateComponents *badComponents = [[NSCalendar currentCalendar] components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ) fromDate:badDate];
NSLog(@"good : %ld - %ld - %ld", goodComponents.day, goodComponents.month, goodComponents.year);
NSLog(@"bad : %ld - %ld - %ld", badComponents.day, badComponents.month, badComponents.year);
> 2015-09-09 19:36:30.918 MyApp[23827:292047] good : 16 - 9 - 2015
> 2015-09-09 19:36:31.380 MyApp[23827:292047] bad : 15 - 9 - 2015
下面是将时间戳转换为日期的PhP代码
date('Y-m-d', 'timestamp');
您的php代码不包含日期中的时间。正确的方法是
date('Y-m-d H:i:s', 'timestamp');
我们(me和pHp开发人员)集成在一起的最佳解决方案是存储一个带有日期和时间的时间戳。返回时,根据可用的时间戳设置结果。现在我这边一切都很好。感谢关心我的问题的人。请也添加php代码。可能会像
$good=time()一样愚蠢$bad=mktime(0,0,0)
。所以,是的。。。显示php代码。听起来好像服务器上存储的日期不包括时间,这就是为什么在将它们转换回时间戳时,总是在午夜…@MarcB,添加了php代码。@Robert,我添加了php代码,请检查并让我知道完成此操作的正确方法。谢谢回复。但是我的PhP开发人员只需要Y-m-d
就可以轻松地比较日期。最后,他将向我发送一个包含数组中活动列表的对象。如果我不想要时间,还有其他方法吗?为什么去掉时间会影响日期比较?如果一个日期比另一个日期低,它仍然比另一个日期低。是的,但同一天有多个活动。你想做什么?你每天都有活动吗?那你的问题到底是什么?你得到的结果是什么。您也可以显示您的SQL查询吗?