JavaScript获取数组中日期的最小值和最大值、生成两个日期的连续日期、比较日期时间的大小、map、toISOString、sort、split、setDate、getDate

菜单

  • 获取最小和最大日期值
  • 生成两个日期的连续日期(包括两头)
  • getDate
  • setDate
  • split
  • sort
  • toISOString
  • map


获取最小和最大日期值

function dateTimeMinMax(arr = []) {
    let dateArr = arr.map(item => new Date(item)).sort((a, b) => a - b),
        minDate = dateArr[0],
        maxDate = dateArr[dateArr.length - 1];

    minDate = minDate.toISOString().split('T')[0];
    maxDate = maxDate.toISOString().split('T')[0];

    return {
        minDate,
        maxDate
    };
}

console.log(dateTimeMinMax(['2023-05-01', '2023-06-20', '2023-05-05', '2022-12-12', '2023-07-07', '2023-09-27']));
// {minDate: '2022-12-12', maxDate: '2023-09-27'}

生成两个日期的连续日期(包括两头)

function continuousDateTime(statusDate = new Date(), endDate = new Date()) {
    statusDate = new Date(statusDate);
    endDate = new Date(endDate);

    let arr = [],
        i = 1;

    while (statusDate <= endDate) {
        arr.push({
            id: `id_${i}`,
            dateTime: statusDate.toISOString().split('T')[0]
        });
        statusDate.setDate(statusDate.getDate() + 1);
        i++;
    }

    return arr;
}

console.log(continuousDateTime('2023-08-27', '2023-09-07'));
// [
//     { "id": "id_1", "dateTime": "2023-08-27" },
//     { "id": "id_2", "dateTime": "2023-08-28" },
//     { "id": "id_3", "dateTime": "2023-08-29" },
//     { "id": "id_4", "dateTime": "2023-08-30" },
//     { "id": "id_5", "dateTime": "2023-08-31" },
//     { "id": "id_6", "dateTime": "2023-09-01" },
//     { "id": "id_7", "dateTime": "2023-09-02" },
//     { "id": "id_8", "dateTime": "2023-09-03" },
//     { "id": "id_9", "dateTime": "2023-09-04" },
//     { "id": "id_10", "dateTime": "2023-09-05" },
//     { "id": "id_11", "dateTime": "2023-09-06" },
//     { "id": "id_12", "dateTime": "2023-09-07" }
// ]

getDate

MDN

根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从1~31)。


w3school

getDate()方法返回指定日期在月中的第几天(从1到31)。


setDate

MDN

setDate()方法根据本地时间来指定一个日期对象的天数。


w3school

setDate()方法将月份中的某一天设置为日期对象。


split

w3school

split()方法将字符串拆分为子字符串数组。
split()方法返回新数组,不会更改原始字符串。
如果 (" ") 用作分隔符,则字符串在单词之间进行拆分。


MDN

split()方法接受一个模式,通过搜索模式将字符串分割成一个有序的子串列表,将这些子串放入一个数组,并返回该数组。


sort

w3school

sort()方法对数组的项目进行排序。
排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。
默认情况下,sort()方法将按字母和升序将值作为字符串进行排序。
这适用于字符串(Apple出现在Banana之前)。但是,如果数字按字符串排序,则25大于100,因为2大于1。
正因为如此,sort()方法在对数字进行排序时会产生不正确的结果。
您可以通过提供“比较函数”来解决此问题。
sort()方法会改变原始数组。


MDN

sort()方法就地对数组的元素进行排序,并返回对相同数组的引用。默认排序是将元素转换为字符串,然后按照它们的UTF-16码元值升序排序。
由于它取决于具体实现,因此无法保证排序的时间和空间复杂度。
如果想要不改变原数组的排序方法,可以使用toSorted()。


toISOString

w3school

toISOString()方法使用ISO标准将Date对象转换为字符串。
该标准称为ISO-8601,格式为:YYYY-MM-DDTHH:mm:ss.sssZ


MDN

toISOString()方法返回一个ISO(ISO 8601 Extended Format)格式的字符串:YYYY-MM-DDTHH:mm:ss.sssZ。时区总是UTC(协调世界时),加一个后缀“Z”标识。


map

MDN

map()方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。


w3school

map()方法使用为每个数组元素调用函数的结果创建新数组。
map()方法按顺序为数组中的每个元素调用一次提供的函数。
注释:map()对没有值的数组元素不执行函数。
注释:map()不会改变原始数组。

你可能感兴趣的:(JavaScript,web前端,功能,javascript,web前端,开发语言)