在 OSX Yosemite 中,我使用新的 JavaScript for Automation 功能来编写日历脚本。我正在尝试搜索日历以查看当前是否正在发生事件。
我在 AppleScript 中这样做了:
set now to current date
every event whose start date < now and end date > now
我注意到在 AppleScript 中有一个专门的 AppleScript 'date' 对象。事件日志显示如下。特别注意字符串前的“日期”修饰符,表示这是一个日期对象而不仅仅是一个字符串。
count every event whose start date < date "Monday, August 11, 2014 at 5:49:46 PM" and end date > date "Monday, August 11, 2014 at 5:49:46 PM" and allday event = false
我试图在 AppleScript 中这样做:
workCalendar.events.whose({
_and: [
{ startDate: {'<': now} },
{ endDate: {'>': now} }
]
});
但是我为 now var 设置的任何值都会给我以下错误:
Error -1700: Can't convert types.
我现在尝试了以下值和所有返回类型转换错误:
calendarApp.includeStandardAdditions = true;
now = calendarApp.currentDate;
now = (new Date());
now = (new Date()).toISOString();
now = $.NSDate.date;
试着找出我这样做的价值类型:
firstStartDate = workCalendar.events[0].startDate();
console.log("firstStartDate : " + firstStartDate);
console.log("firstStartDate TO : " + (typeof firstStartDate));
console.log("firstStartDate OS : " + ObjectSpecifier.classOf(firstStartDate));
这导致在事件日志中:
/* firstStartDate : Wed Jun 18 2014 10:30:00 GMT-0700 (PDT) */
/* firstStartDate TO : object */
/* firstStartDate OS : undefined */