Ide*_*v86 1 timestamp date nsdate parse-platform swift
使用Swift和Parse,我需要获得与设备设置无关的日期和时间(UTC通用日期).NSDate()工作正常,但如果用户在设备设置中更改时区或时间或日期,则控制功能变得无用.基本上我必须检查一个用户每天最多可以向Parse数据库发送1张照片.目前要执行此操作,我搜索CurrentUser发送的最后1张照片,然后运行控件:if objectPhoto1 dates == NSDate {blah blah bla ...
问题是NSDate取决于设备的设置,因此如果用户更改日期可能会发送无限照片.
有没有办法从Parse服务器或Apple服务器或其他东西获取当前日期?
我觉得这很愚蠢,但它变成了一场噩梦!
也许我没有解释,我没有要发布的代码,因为如果我没有正确的日期和时间,这个功能就不存在了.实际例子:
// my iPhone current date and time (correct time) >> 10/12/2015 16:42:18
let TimeNow = NSDate()
print(TimeNow) // show "10/12/2015 16:42:18"
Run Code Online (Sandbox Code Playgroud)
如果我改变我的日期iPhone设置
// now my iPhone date and time are (incorrect time) >> 01/01/2002 15:30:26
let TimeNow = NSDate()
print(TimeNow) // show "01/01/2002 15:30:26"
Run Code Online (Sandbox Code Playgroud)
现在我的日期和时间都错了.我需要设置一个变量,其中包含设备设置的当前时间戳REGARDLESS.
解析服务器时间始终设置为UTC.编写一个简单的云函数,返回当前日期和UTC时间.就像是:
Parse.Cloud.define("getUTCDate", function(request, response) {
var now = new Date();
response.success(now);
});
Run Code Online (Sandbox Code Playgroud)
在iOS应用程序中使用之前,您需要将Cloud功能部署到Parse服务器.按照Cloud Code指南的入门部分在Parse上部署您的Cloud代码.
在Parse服务器上部署云功能后,您可以使用Swift从iOS调用此函数,如下所示:
PFCloud.callFunctionInBackground("getUTCDate", withParameters: nil) { results, error in
if error != nil {
// Your error handling here
} else {
// Deal with your results (Date in your case) here.
}
}
Run Code Online (Sandbox Code Playgroud)