斯威夫特:如何设置两个日期之间的照片范围?

Posted

技术标签:

【中文标题】斯威夫特:如何设置两个日期之间的照片范围?【英文标题】:Swift: how to set range of photos between 2 dates? 【发布时间】:2019-07-19 11:03:30 【问题描述】:

我想从照片库中获取 1 月 1 日至 5 月 1 日期间的照片 我该怎么做呢

我的代码适用于所有照片:

let options = PHFetchOptions()
options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: true) ]
options.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)
let assets = PHAsset.fetchAssets(with: options)

【问题讨论】:

【参考方案1】:

有一个creationDate 属性,所以你可以扩展你的谓词来过滤日期:

(creationDate >= %@) AND (creationDate <= %@)

所以你的谓词应该如下所示

options.predicate = NSPredicate(
  format: "mediaType = %d AND (creationDate >= %@) AND (creationDate <= %@)", 
  PHAssetMediaType.image.rawValue, 
  fromDate as NSDate, 
  toDate as NSDate
)

【讨论】:

BETWEEN 适用于 NSPredicate 查询。 是的,同意。只是尝试使用更明显的方式,因为尚不清楚BETWEEN 中包含的内容。另一方面,您有特定的运算符&gt;=&gt; 参数类型“日期”不符合预期类型“CVarArg”@rkyr 是的,因为它是 NSPredicate,所以您需要将日期转换为 NSDate。将在几秒钟内更新答案

以上是关于斯威夫特:如何设置两个日期之间的照片范围?的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个日期的两个日期范围之间获取 obj

列出两个日期范围之间的日期

如何通过给出两个日期来限制 jquery datepicker 的日期范围?

SQL语句如何判断一个日期在两个日期之间

在 R 中:如何在两个日期之间按组对变量求和

MySQL:选择两个日期范围内的所有数据