HOW TO
In ArcGIS Online funktioniert die Funktion "DateDiff()" möglicherweise nicht wie gewünscht, wenn die Datumsdifferenz zwischen zwei Feldern berechnet wird, insbesondere wenn die Datumsfelder in unterschiedlichen Formaten vorliegen und als Text oder Zeichenfolge gespeichert werden. Die Datumsdifferenz zwischen zwei Textfeldern kann anhand eines Arcade-Ausdrucks berechnet werden. Diese Methode wandelt qualitative, zeitbezogene Informationen in quantitative Kennwerte um und ermöglicht so fundiertere und strategischere Ansätze zum Verwalten und Interpretieren zeitkritischer Daten.
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.
In diesem Artikel wird der Workflow zum Berechnen der Datumsdifferenz zwischen zwei Textfeldern in einer Attributtabelle mit einem Arcade-Ausdruck in ArcGIS Online beschrieben.
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;
Im Folgenden finden Sie den voll funktionsfähigen Code des Arcade-Ausdrucks.
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.
Die folgende Abbildung zeigt die Datumsdifferenz zwischen den zwei berechneten Textfeldern im neuen Feld.
Artikel-ID: 000031779
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen