Javascript API Layer Definition does not work correctly with datetime values.
Last Published: August 25, 2014ArcGIS API for JavaScript
Bug ID Number
NIM038387
Submitted
September 11, 2008
Last Modified
June 5, 2024
Applies to
ArcGIS API for JavaScript
Version found
9.3
Status
Duplicate
The issue is a duplicate of an existing issue. See the issue's Additional Information section for details. Customers associated with the duplicate issue are automatically attached to the open issue.
Additional Information
Duplicate of NIM042471. At 10.0 REST API supports input in JSON representation for defintion query which should be used for this case.
Workaround
1) add a new field (in the database) to store a numeric date representation (float, e.g.).2) convert values in the date field to the new numeric field.3) alter javascript code according to the following example to apply the definition based on the numeric field values (without any conversion of dates whatsoever):layerDefs[0] = "DateFloat < 20071231235900"; //value is: YYYYMMDDhhmmssYou could also store datetime values in a float field in the same format used by the JavaScript getTime() function (milliseconds since midnight of 1/1/1970). Use getTime() in the application to convert the desired datetime for the layer definition. Something like:d = new Date();d.setMonth(12);d.setDate(31);d.setYear(2007);d.setHours(23);d.setMinutes(59);d.setSeconds(0);time = d.getTime();layerDefs[0] = "DateMS > " + time;