如果今天的日期在 SwiftUI 中的两个不同日期之间
If today's date is between 2 different dates in SwiftUI
我想看看今天的日期是否在两个日期之间。如果今天的日期在某些日期之间,它将更改变量的值。
例如:
var p = 5
if viewModel.currentTime > "2021-04-23" && viewModel.currentTime < "2021-05-23"
{
p = 2
}
这就是我想要实现的,但是在 SwiftUI 语言中,但我不知道该怎么做。
我正在考虑使用 if 语句,但那行不通。我有这个 class 获取今天的日期。
@Published var currentTime = ""
var timer = Timer()
init() {
let repeatEveryXSeconds: TimeInterval = 1
timer = Timer.scheduledTimer(withTimeInterval: repeatEveryXSeconds, repeats: true, block: { [weak self] timer in
let formatter = DateFormatter()
formatter.dateFormat = "YYYY-MM-dd"
self?.currentTime = formatter.string(from: Date())
})
}
}
struct Dates: View {
@StateObject private var viewModel = ViewModel()
我需要一些帮助或建议来完成这项任务。
如果有任何困惑,请告诉我。有点难解释。
更新:
这是我收到的错误:
Date
是 Comparable
,因此您可以使用 < 和 > 来比较您的日期。关键是使用 Date
类型执行所有逻辑,然后格式化结果。您可以使用以下函数在 Date
和 String
之间相互转换。
public extension Date {
static func parse(_ string: String, format: String = "yyyy-MM-dd") -> Date {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = NSTimeZone.default
dateFormatter.dateFormat = format
let date = dateFormatter.date(from: string)!
return date
}
func dateString(_ format: String = "yyyy-MM-dd") -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
return dateFormatter.string(from: self)
}
}
var p = 5
let now = Date()
let day1 = Date.parse("2021-04-23")
let day2 = Date.parse("2021-05-23")
if now > day1 && now < day2 {
p = 2
}
print(p) // prints 2 as of May 1, 2021
我想看看今天的日期是否在两个日期之间。如果今天的日期在某些日期之间,它将更改变量的值。
例如:
var p = 5
if viewModel.currentTime > "2021-04-23" && viewModel.currentTime < "2021-05-23"
{
p = 2
}
这就是我想要实现的,但是在 SwiftUI 语言中,但我不知道该怎么做。
我正在考虑使用 if 语句,但那行不通。我有这个 class 获取今天的日期。
@Published var currentTime = ""
var timer = Timer()
init() {
let repeatEveryXSeconds: TimeInterval = 1
timer = Timer.scheduledTimer(withTimeInterval: repeatEveryXSeconds, repeats: true, block: { [weak self] timer in
let formatter = DateFormatter()
formatter.dateFormat = "YYYY-MM-dd"
self?.currentTime = formatter.string(from: Date())
})
}
}
struct Dates: View {
@StateObject private var viewModel = ViewModel()
我需要一些帮助或建议来完成这项任务。
如果有任何困惑,请告诉我。有点难解释。
更新:
这是我收到的错误:
Date
是 Comparable
,因此您可以使用 < 和 > 来比较您的日期。关键是使用 Date
类型执行所有逻辑,然后格式化结果。您可以使用以下函数在 Date
和 String
之间相互转换。
public extension Date {
static func parse(_ string: String, format: String = "yyyy-MM-dd") -> Date {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = NSTimeZone.default
dateFormatter.dateFormat = format
let date = dateFormatter.date(from: string)!
return date
}
func dateString(_ format: String = "yyyy-MM-dd") -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
return dateFormatter.string(from: self)
}
}
var p = 5
let now = Date()
let day1 = Date.parse("2021-04-23")
let day2 = Date.parse("2021-05-23")
if now > day1 && now < day2 {
p = 2
}
print(p) // prints 2 as of May 1, 2021