SwiftMoment

Build Status CocoaPods Compatible Carthage Compatible Platform swiftyness

这个框架的灵感来源于 Moment.js。 它的目标如下:

重要提示:此框架支持 iOS 8+,macOS 10.10+,tvOS 9+,watchOS 2+,Xcode 7 和 Swift 2.2。

安装

SwiftMoment 兼容 CarthageCocoaPods。 使用 CocoaPods,只需将其添加到您的 Podfile 中

pod 'SwiftMoment'

Mac OS X 注意事项

示例

要使用此库,只需在您的应用程序中 import SwiftMoment

创建新的 moment 实例

let now = moment()
let yesterday = moment("2015-01-19")

默认情况下,moment 使用当前日期和时间初始化。 您可以为未来的或过去的任何... moment 创建 moment; 您可以通过传递不同格式的字符串来实现

let yesterday = moment("2015-01-19")

您也可以通过直接手动指定组件来实现

let today = moment([2015, 01, 19, 20, 45, 34])

您也可以使用带有以下键的字典

let obj = moment(["year": 2015,
                    "second": 34,
                    "month": 01,
                    "minute": 45,
                    "hour": 20,
                    "day": 19
                ])

使用 [String: Int] 字典时,键的顺序无关紧要。 此外,仅考虑上面的键,并且忽略任何其他信息。

Swift 中还有一个 Int 类型的扩展,用于直接从整数值创建 Duration

let duration = 5.hours + 56.minutes

架构

此库的两个最重要的组件是 MomentDuration 结构。 Moment 包装一个 NSDate 实例,而 Duration 包装一个 NSTimeInterval 值。

MomentDuration 都符合 Comparable 协议,并包含所有必需的运算符。 此外,Moment 实例可以彼此相减(产生 Duration),并且可以将 Duration 实例添加到 Moments 以创建新的 moment。

MomentsDurations 尽可能保持不变。

测试

Swift Moment 包含一组测试,展示了如何使用框架的不同功能。

Playground

项目中包含一个 playground,用于学习如何使用该库。

Moment.js 的差异

贡献者

很多人都在积极帮助开发这个库;请查看 CONTRIBUTORS 文件以获取完整列表! 感谢大家 :)

许可证

本项目采用 BSD 许可证进行分发。 有关详细信息,请参见 LICENSE 文件。