相关疑难解决方法(0)

获取两个NSDates之间的差异(月/天/小时/分钟/秒)

我试图获取当前日期NSDate()和PHP time();调用日期之间的区别,例如:NSDate(timeIntervalSinceReferenceDate: 1417147270).如何获得两个日期之间的时间差异.我想要一个比较两个日期的函数,if(seconds > 60)然后它返回分钟,if(minutes > 60)返回小时和if(hours > 24)返回天数等等.

我该怎么办呢?

编辑:当前接受的答案正是我想要做的.我推荐它用于在PHP time()函数使用的表单中获取两个日期之间的时间.如果你不是特别熟悉PHP,那就是1970年1月1日以秒为单位的时间.这对PHP的后端很有用.如果您使用像NodeJS这样的后端,您可能需要考虑下面的其他一些选项.

macos nsdate ios swift

194
推荐指数
6
解决办法
10万
查看次数

一年中两个NSDates之间的天数很快

我正在建立一个生日提醒应用程序.我希望用户能够看到有多少天,直到某个人的下一个生日.

假设我有一个NSDate()=2015-06-30 07:21:47 +0000

而且NSDate为了生日=1985-08-29 12:00:00 +0000

我怎么能得到下一个生日的天数?我已经使用了类似这样的东西,它给出了自实际开始日期以来的负数天数(出生日期数以千计).然后,我将添加365数字差异,直到它是积极的,但它仍然返回一个不稳定的数字.我假设是因为闰年或其他什么.

有没有一种方法可以实现?以某种方式平衡年份组成部分,以便始终比较下一个生日而不是原始生日?

编辑:

这是我正在使用的功能:

func daysBetween(date1: NSDate, date2: NSDate) -> Int {

    var calendar: NSCalendar = NSCalendar.currentCalendar()

    let date1 = calendar.startOfDayForDate(date1)
    let date2 = calendar.startOfDayForDate(date2)

    let flags = NSCalendarUnit.CalendarUnitDay
    let components = calendar.components(flags, fromDate: date1, toDate: date2, options: nil)

    return components.day
}
Run Code Online (Sandbox Code Playgroud)

我发布的示例日期我会像这样使用它:

// sampleDate = 1985-08-29 12:00:00 +0000
daysBetween(sampleDate, date2: NSDate())
// --> 10897
Run Code Online (Sandbox Code Playgroud)

无论是积极的还是消极的,这个数字都是数以千计.我希望将其平衡到下一个日历生日的天数.

xcode date nsdate ios swift

3
推荐指数
1
解决办法
5925
查看次数

仅比较Date对象中的时差

我有两个Date对象,我只想比较它们之间的时差,而忽略日期。将是这样的:

dt1 =(日期)2016-09-22 20:05:01 UTC
dt2 =(日期)2016-08-20 22:06:00 UTC

dt1和dt2之差为2小时或121分钟。

Swift中有一个我可以做到的功能吗?

ios swift swift3

1
推荐指数
1
解决办法
2599
查看次数

标签 统计

ios ×3

swift ×3

nsdate ×2

date ×1

macos ×1

swift3 ×1

xcode ×1