簡體   English   中英

按日期以非常規格式排序

[英]Sorting by a date in unusual format

我必須按日期屬性對表進行排序,但是我的日期看起來像這樣:“ 14.01.1970 07:55”。 如何用與服務器端不同的格式顯示此日期? 我該如何對這種類型的日期進行排序?

您可以標記該字符串並實例化一個新的Date對象。

 var dateStrings = [ "14.01.1970 07:55", "14.01.1972 07:55", "14.01.1971 07:55" ] function parseDate(dateString) { var tokens = dateString.split(/[\\.: ]/g); var date = parseInt(tokens[0], 10); var month = parseInt(tokens[1], 10) - 1; var year = parseInt(tokens[2], 10); var hour = parseInt(tokens[3], 10); var minute = parseInt(tokens[4], 10); return new Date(year, month, date, hour, minute); } // Zulu time 7 hours + timezone offset console.log(dateStrings.map(parseDate).sort((a, b) => a > b)) 
 .as-console-wrapper { top: 0; max-height: 100% !important; } 

只需添加moment.js,即可輕松設置格式: https ://momentjs.com/

例如,包裝您的時間戳記moment(yourtimestamp, 'DD.MM.YYYY HH:mm')然后格式化所需的格式,只需.format(yourformat)

像這樣:

moment('14.01.1970 07:55', 'DD.MM.YYYY HH:mm').format('YYYY MM DD')

您可以通過創建unix時間戳數組來對它們進行排序

moment('12.02.1980 08:55', 'DD.MM.YYYY HH:mm').format('X')

const array = [319186500, 319182900];

array.sort()

如果您有lodash,也許是_.sortBy

這是我在Javascript(未經測試的代碼警報)中的處理方式:

// STEP : 1 sample Input
var input = ["01.01.1970 07:55", "06.06.1970 08:55", "03.03.1970 07:55"];

function convertToDateObj(date_string){
    // 14.01.1970 07:55
    date_string = date_string.split('.');
    // [ 0 => 01, 1 => 14, 2 => 1970 07:55 ]
    temp = date_string[0]; date_string[0] = date_string[1]; date_string[1] = date_string[0];
    // 01/14/1970 07:55
    date_string = date_string.join("/");
    // 1970-01-14T02:25:00.000Z
    return new Date(Date.parse(date_string));
}

// STEP : 2 convert to date Objects
var dateObjects = [];
for(var i=0; i<input.length; i++){
   dateObjects[i] = convertToDateObj(input[i]);
}

// STEP : 3 sort them
dateObjects.sort(function(date1, date2){
 if (date1 < date2) {
    return -1;
 } else if (date1 == date2) {
    return 0;
 } else {
    return 1;
 }
})

// your output:
console.log(dateObjects)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM