Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何使用swift 3.0从日期获取最后30个日期_Json_Swift_Date_Swift3 - Fatal编程技术网

Json 如何使用swift 3.0从日期获取最后30个日期

Json 如何使用swift 3.0从日期获取最后30个日期,json,swift,date,swift3,Json,Swift,Date,Swift3,我正在从JSON解析日期。从url解析JSON日期后,我想从中获取最后30个日期 Alamofire.request("url") .responseJSON { response in if let arr = response.result.value as? [String:AnyObject] { let inrc = (arr["date"])! self.myfuncDa

我正在从JSON解析日期。从url解析JSON日期后,我想从中获取最后30个日期

Alamofire.request("url") .responseJSON { response in

            if let arr = response.result.value as? [String:AnyObject]
            {
                let inrc = (arr["date"])!
                self.myfuncDate(str: inrc as! String)
            }
        }

func myfuncDate(str: String)
    {
       let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let date = dateFormatter.date(from: str)
        currrentDate = date 
        //currentDate is globalVariable
    }
这是我最后30天打印的

 for i in 1..<31 
 {
      let day:String = String(cal.component(.day, from: currrentDate))
       days.append(day)
       print(days)

    Output : ["13", "12", "11", "10", "9", "8", "7", "6", 
   "5", "4", "3", "2", "1", "31", "30", "29", "28", "27", "26", "25", "24",
   "23", "22", "21", "20", "19", "18", "17", "16", "15"]
 }

请帮助我。

您可以通过以下方式从日期中获取最后30个日期:

var today = Date()
var dateArray = [String]()
for i in 1...30{
  let tomorrow = Calendar.current.date(byAdding: .day, value: -1, to: today)
  let date = DateFormatter()
  date.dateFormat = "dd-MM-yyyy"
  var stringDate : String = date.string(from: today)
  today = tomorrow!
  dateArray.append(stringDate)
}
print(dateArray)
输出:

["13-01-2017", "12-01-2017", "11-01-2017", "10-01-2017", "09-01-2017", "08-01-2017", "07-01-2017", "06-01-2017", "05-01-2017", "04-01-2017", "03-01-2017", "02-01-2017", "01-01-2017", "31-12-2016", "30-12-2016", "29-12-2016", "28-12-2016", "27-12-2016", "26-12-2016", "25-12-2016", "24-12-2016", "23-12-2016", "22-12-2016", "21-12-2016", "20-12-2016", "19-12-2016", "18-12-2016", "17-12-2016", "16-12-2016", "15-12-2016"]

试试这个,它可能会对您有所帮助。

您可以通过以下方式获得date的最后30个日期:

var today = Date()
var dateArray = [String]()
for i in 1...30{
  let tomorrow = Calendar.current.date(byAdding: .day, value: -1, to: today)
  let date = DateFormatter()
  date.dateFormat = "dd-MM-yyyy"
  var stringDate : String = date.string(from: today)
  today = tomorrow!
  dateArray.append(stringDate)
}
print(dateArray)
输出:

["13-01-2017", "12-01-2017", "11-01-2017", "10-01-2017", "09-01-2017", "08-01-2017", "07-01-2017", "06-01-2017", "05-01-2017", "04-01-2017", "03-01-2017", "02-01-2017", "01-01-2017", "31-12-2016", "30-12-2016", "29-12-2016", "28-12-2016", "27-12-2016", "26-12-2016", "25-12-2016", "24-12-2016", "23-12-2016", "22-12-2016", "21-12-2016", "20-12-2016", "19-12-2016", "18-12-2016", "17-12-2016", "16-12-2016", "15-12-2016"]

试试这个,它可能会对你有所帮助。

使用Swift 3真的很容易

var startDate = Calendar.current.date(byAdding: .day, value: -30, to: dateFromAPI)! // first date
let endDate = dateFromAPI // last date

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"

while startDate <= endDate {
    print(formatter.string(from: startDate))
    startDate = Calendar.current.date(byAdding: .day, value: 1, to: startDate)!
}
var startDate=Calendar.current.date(通过添加:.day,值:-30,到:dateFromAPI)!//第一次约会
让endDate=dateFromAPI//last date
let formatter=DateFormatter()
formatter.dateFormat=“yyyy-MM-dd”

而startDate使用Swift 3真的很容易

var startDate = Calendar.current.date(byAdding: .day, value: -30, to: dateFromAPI)! // first date
let endDate = dateFromAPI // last date

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"

while startDate <= endDate {
    print(formatter.string(from: startDate))
    startDate = Calendar.current.date(byAdding: .day, value: 1, to: startDate)!
}
var startDate=Calendar.current.date(通过添加:.day,值:-30,到:dateFromAPI)!//第一次约会
让endDate=dateFromAPI//last date
let formatter=DateFormatter()
formatter.dateFormat=“yyyy-MM-dd”
开始时