在JavaScript中对时间戳数组进行排序
我正在开发一个Angular web服务,用于创建照片旅行并使用传单将其显示在地图上。 当我上传图片时,我从EXIF数据中获取它们的坐标,并从中获取DateTimeOriginal,该数据返回如下字符串: 然后将它们保存在数组中,以便与地图上的路径进一步连接 为了正确连接地图上的标记,我无法按时间戳对该数组进行排序:在JavaScript中对时间戳数组进行排序,javascript,angular,sorting,timestamp,leaflet,Javascript,Angular,Sorting,Timestamp,Leaflet,我正在开发一个Angular web服务,用于创建照片旅行并使用传单将其显示在地图上。 当我上传图片时,我从EXIF数据中获取它们的坐标,并从中获取DateTimeOriginal,该数据返回如下字符串: 然后将它们保存在数组中,以便与地图上的路径进一步连接 为了正确连接地图上的标记,我无法按时间戳对该数组进行排序: 如何按时间戳排序?日期似乎无效。 如果它的格式是这样的(“2012/10/24 16:37:44”),您可以这样做: const a = new Date("2012/10/2
如何按时间戳排序?日期似乎无效。 如果它的格式是这样的(“2012/10/24 16:37:44”),您可以这样做:
const a = new Date("2012/10/24 16:37:44").getTime();
例如,您可以映射此数组中的项
function sortNumber(a,b) {
return a - b;
}
items.map(item => new Date(item.timestamp).getTime()).sort(sortNumber);
似乎日期无效。 如果它的格式是这样的(“2012/10/24 16:37:44”),您可以这样做:
const a = new Date("2012/10/24 16:37:44").getTime();
例如,您可以映射此数组中的项
function sortNumber(a,b) {
return a - b;
}
items.map(item => new Date(item.timestamp).getTime()).sort(sortNumber);
我所做的可能重复的可能重复是替换时间戳字符串中的:并使其适合解析为日期对象,然后按日期对数组排序:sortMarkers(){this.currentMarkers.map(m=>{let mTimestamp:string=m.timestamp.substring(0,10);mTimestamp=mTimestamp.replace(/:/g,,-);m.timestamp=mTimestamp+m.timestamp.substring(10);m.date=new date(m.timestamp);};this.currentmarks=this.currentmarks.sort(函数(a,b){return a.date-b.date;});}
我所做的是替换时间戳字符串中的:,并使其适合解析为日期对象,然后按日期对数组进行排序:sortMarkers(){this.currentMarkers.map(m=>{let mTimestamp:string=m.timestamp.substring(0,10);mTimestamp=mTimestamp.replace(/:/g,'-'));m.timestamp=mTimestamp+m.timestamp.substring(10);m.date=newdate(m.timestamp);});this.currentmarks=this.currentmarks.sort(函数(a,b){return a.date-b.date;});}