操作方法
在 ArcGIS Online 中,当计算两个字段之间的日期差值时,DateDiff() 函数可能无法正常运行,尤其当日期字段采用不同格式且存储为文本或字符串时更是如此。 可以使用 Arcade 表达式计算两个文本字段之间的日期差值。 此方法可将定性时间信息变换为定量指标,由此能够采用更明智和更具战略性的方法来管理和解释时效性数据。
Note: The date difference between two text fields can only be calculated if the date format used in the text fields is in dd-mmmm-yyyy.
本文提供了在 ArcGIS Online 中使用 Arcade 表达式计算属性表中两个文本字段之间日期差值的工作流。
Note: Skip to Step 3 if the script is run on an existing field.
var months = { "January": "01", "February": "02", "March": "03", "April": "04", "May": "05", "June": "06", "July": "07", "August": "08", "September": "09", "October": "10", "November": "11", "December": "12" };
var <variable1> = $feature.<field_name1>; var <variable2> = $feature.<field_name2>;
var <variable3> = Split(<variable1>, " "); var <variable4> = Split(<variable2>, " ");
var dayNum = dateParts[0]; var monthNum = months[dateParts[1]]; var yearNum = dateParts[2];
var dayNum2 = dateParts2[0]; var monthNum2 = months[dateParts2[1]]; var yearNum2 = dateParts2[2];
var <variable5> = yearNum + "-" + monthNum + "-" + dayNum; var <variable6> = yearNum2 + "-" + monthNum2 + "-" + dayNum2; var dateDifference = DateDiff(<variable6>, <variable5>, "days"); return dateDifference;
以下是 Arcade 表达式的完整工作代码。
var months = {
"January": "01", "February": "02", "March": "03", "April": "04", "May": "05", "June": "06", "July": "07", "August": "08", "September": "09", "October": "10", "November": "11", "December": "12"
}; var startDate = $feature.StartDate; var endDate = $feature.EndDate; var dateParts = Split(startDate, " "); var dateParts2 = Split(endDate, " "); var dayNum = dateParts[0]; var monthNum = months[dateParts[1]]; var yearNum = dateParts[2]; var dayNum2 = dateParts2[0]; var monthNum2 = months[dateParts2[1]]; var yearNum2 = dateParts2[2]; var updatedStartDate = yearNum + "-" + monthNum + "-" + dayNum; var updatedEndDate = yearNum2 + "-" + monthNum2 + "-" + dayNum2; var dateDifference = DateDiff(updatedEndDate, updatedStartDate, "days"); return dateDifference;
Note: To calculate the difference between the two date fields in other units such as hours, minutes, or seconds, use the same expression and replace 'days' with the desired unit of measurement.
下图显示了在新字段中计算并填充的两个文本字段之间的日期差值(以天为单位)。
文章 ID: 000031779
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序