优化了同步,将原本无时间的提醒事项同步成全天事项
代码改自:https://blog.csdn.net/zackerzhuang
这位博主,可以配合她的小目标,非常好用。
更新点
1、原本无时间的提醒事项全部堆积在0:00-1:00,这样下滑很容易忘掉,现改为全天,时间轴下拉不遗漏
2、全天性质(无时间有日期)的日程,如果没有做,依旧会推移到第二天全天
3、全天重复性待办,今天打卡结束,会进入第二天全天列
2、优化了图标,更加清淡(个人口味)
3、图示app是calendar和原生日历
优化难点:
1、ios自带的new date 返回的时间,是无法进行等于比较的,,虽然数据类型是Number,单=和!= 无论等不等都返回true。添加if 分支遭到阻碍。
2、新建的无时间的提醒事项,getHours,getSeconds是空,同步一次之后会变成00:00:00
所以,同样是无时间的提醒,背后判定不一样。
优化遗憾:
此代码逻辑下,0点这个时间段的待办会被同步到全天(就是最上面),但点击完成后,仍然可以回归到时间轴。
图示:配合第三方简直完美
原生日历:全天比较窄
代码如下
var dur_month = 3
//设置同步 同步时间为前后3个月
const startDate = new Date()
startDate.setMonth(startDate.getMonth() - dur_month)
console.log(`日历的开始时间 ${
startDate.toLocaleDateString()}`)
const endDate = new Date()
endDate.setMonth(endDate.getMonth() + dur_month)
console.log(`日历的结束时间 ${
endDate.toLocaleDateString()}`)
const reminders = await Reminder.allDueBetween(startDate, endDate)
console.log(`获取 ${
reminders.length} 条提醒事项`)
var calendar = await Calendar.forEvents()
var m_dict = {
}
for(cal of calendar)
{
m_dict[cal.title] = cal
//console.log(`日历:${cal.title}`)
}
const events = await CalendarEvent.between(startDate, endDate, calendar)
console.log(`获取 ${
events.length} 条日历`)
for