【问题标题】:How do I convert Swift date and TimeInterval so that I can send to php server?如何转换 Swift 日期和 TimeInterval 以便我可以发送到 php 服务器?
【发布时间】:2019-03-26 06:07:29
【问题描述】:

我有一个快速的日期和时间间隔,我想通过 Alamofire 发送到 php 服务器。为了通过 JSON 或参数发送,我应该对这些变量做些什么?

我应该使用特定的格式吗?

(我不知道这两者之间的交互是如何工作的)

【问题讨论】:

  • 你能指定你的php服务器接受什么吗?您可以将 Swift 日期和时间间隔转换为 UTC 格式,然后将其发送到您的服务器。
  • 其他用户将您的问题标记为低质量和需要改进。我重新措辞/格式化您的输入,使其更容易阅读/理解。请查看我的更改以确保它们反映您的意图。但我认为你的问题仍然无法回答。 现在应该edit您的问题,使其更加具体/清晰(请参阅help me is not a question)。如果您对我有其他问题或反馈,请随时给我留言。
  • A server 定义服务。该服务定义了它需要什么输入。除了了解该服务器的人之外,没有人可以回答您的问题。我们应该如何知道您的服务器期待什么样的数据?

标签: php swift nsdate alamofire


【解决方案1】:

如果你想用 php 或 etc. 保存你的数据库,你可以使用datetime 格式。您也可以将字符串发送到 db ' 它也可以识别字符串并以日期格式保存到 db。你的格式可以是“yyyy-MM-dd'T'HH:mm:ssZ”

【讨论】:

    【解决方案2】:

    您可以使用多种日期格式转换选项。

    我最喜欢的是RFC 3339,因为它在日期格式之间产生的混淆最少,而且它也完全适合PHP

    extension Date {
        init?(rfc3339String: String) {
            self.init()
    
            let localeId = "en_US_POSIX"
            let rfc3339DateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
            let fmt = DateFormatter()
            fmt.locale = Locale(identifier: localeId)
            fmt.dateFormat = rfc3339DateFormat
            fmt.timeZone = TimeZone.current
            self = fmt.date(from: rfc3339String)!
        }
    
        func rfc3339String() -> String {
            let localeId = "en_US_POSIX"
            let rfc3339DateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
            let fmt = DateFormatter()
            fmt.locale = Locale(identifier: localeId)
            fmt.dateFormat = rfc3339DateFormat
            fmt.timeZone = TimeZone.current
            return fmt.string(from: self)
        }
    }
    

    【讨论】:

    • 问题是:由服务器来定义它所期望的。除了 OP 自己之外,没有人有办法了解 他的 服务器在期待什么。
    • @GhostCat,据我了解,OP 即将实现:前端和后端部分。但你的评论是有道理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2021-08-10
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2015-03-11
    相关资源
    最近更新 更多