amis-formula 2.7.2 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/doc.js +295 -6
- package/esm/doc.md +209 -4
- package/esm/evalutor.d.ts +202 -8
- package/esm/evalutor.js +347 -33
- package/esm/filter.js +1 -1
- package/esm/function.js +1 -1
- package/esm/index.js +1 -1
- package/esm/lexer.js +1 -1
- package/esm/parser.js +1 -1
- package/lib/doc.js +295 -6
- package/lib/doc.md +209 -4
- package/lib/evalutor.d.ts +202 -8
- package/lib/evalutor.js +347 -32
- package/lib/filter.js +1 -1
- package/lib/function.js +1 -1
- package/lib/index.js +1 -1
- package/lib/lexer.js +1 -1
- package/lib/parser.js +1 -1
- package/package.json +2 -2
package/esm/doc.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-formula v2.
|
|
2
|
+
* amis-formula v2.8.0
|
|
3
3
|
* Copyright 2021-2023 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -1020,15 +1020,59 @@ var doc = [
|
|
|
1020
1020
|
},
|
|
1021
1021
|
namespace: "日期函数"
|
|
1022
1022
|
},
|
|
1023
|
+
{
|
|
1024
|
+
name: "WEEKDAY",
|
|
1025
|
+
description: "获取日期的星期几,\n\n示例:\n\nWEEKDAY('2023-02-27') 得到 1",
|
|
1026
|
+
example: "WEEKDAY(date)",
|
|
1027
|
+
params: [
|
|
1028
|
+
{
|
|
1029
|
+
type: "any",
|
|
1030
|
+
name: "date",
|
|
1031
|
+
description: "日期"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
type: "number",
|
|
1035
|
+
name: "type",
|
|
1036
|
+
description: "星期定义类型,默认为1,1表示0至6代表星期一到星期日,2表示1至7代表星期一到星期日"
|
|
1037
|
+
}
|
|
1038
|
+
],
|
|
1039
|
+
returns: {
|
|
1040
|
+
type: "number",
|
|
1041
|
+
description: "星期几的数字标识"
|
|
1042
|
+
},
|
|
1043
|
+
namespace: "日期函数"
|
|
1044
|
+
},
|
|
1045
|
+
{
|
|
1046
|
+
name: "WEEK",
|
|
1047
|
+
description: "获取年份的星期,即第几周\n\n示例:\n\nWEEK('2023-03-05') 得到 10",
|
|
1048
|
+
example: "WEEK(date)",
|
|
1049
|
+
params: [
|
|
1050
|
+
{
|
|
1051
|
+
type: "any",
|
|
1052
|
+
name: "date",
|
|
1053
|
+
description: "日期"
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
type: "boolean",
|
|
1057
|
+
name: "isISO",
|
|
1058
|
+
description: "是否ISO星期"
|
|
1059
|
+
}
|
|
1060
|
+
],
|
|
1061
|
+
returns: {
|
|
1062
|
+
type: "number",
|
|
1063
|
+
description: "星期几的数字标识"
|
|
1064
|
+
},
|
|
1065
|
+
namespace: "日期函数"
|
|
1066
|
+
},
|
|
1023
1067
|
{
|
|
1024
1068
|
name: "DATETOSTR",
|
|
1025
|
-
description: "
|
|
1069
|
+
description: "对日期、日期字符串、时间戳进行格式化\n\n示例:\n\nDATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25'\nDATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17'\nDATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'\nDATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'",
|
|
1026
1070
|
example: "DATETOSTR(date, 'YYYY-MM-DD')",
|
|
1027
1071
|
params: [
|
|
1028
1072
|
{
|
|
1029
|
-
type: "
|
|
1073
|
+
type: "any",
|
|
1030
1074
|
name: "date",
|
|
1031
|
-
description: "
|
|
1075
|
+
description: "日期对象、日期字符串、时间戳"
|
|
1032
1076
|
},
|
|
1033
1077
|
{
|
|
1034
1078
|
type: "string",
|
|
@@ -1037,7 +1081,39 @@ var doc = [
|
|
|
1037
1081
|
}
|
|
1038
1082
|
],
|
|
1039
1083
|
returns: {
|
|
1040
|
-
type: "
|
|
1084
|
+
type: "string",
|
|
1085
|
+
description: "日期字符串"
|
|
1086
|
+
},
|
|
1087
|
+
namespace: "日期函数"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
name: "DATERANGESPLIT",
|
|
1091
|
+
description: "获取日期范围字符串中的开始时间、结束时间\n\n示例:\n\nDATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999]\nDATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59]\nDATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'\nDATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'\nDATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'\nDATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'",
|
|
1092
|
+
example: "DATERANGESPLIT(date, 'YYYY-MM-DD')",
|
|
1093
|
+
params: [
|
|
1094
|
+
{
|
|
1095
|
+
type: "string",
|
|
1096
|
+
name: "date",
|
|
1097
|
+
description: "日期范围字符串"
|
|
1098
|
+
},
|
|
1099
|
+
{
|
|
1100
|
+
type: "string",
|
|
1101
|
+
name: "key",
|
|
1102
|
+
description: "取值标识,0或'start'表示获取开始时间,1或'end'表示获取结束时间"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
type: "string",
|
|
1106
|
+
name: "format",
|
|
1107
|
+
description: "日期格式,可选"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
type: "string",
|
|
1111
|
+
name: "delimiter",
|
|
1112
|
+
description: "分隔符,可选,默认为','"
|
|
1113
|
+
}
|
|
1114
|
+
],
|
|
1115
|
+
returns: {
|
|
1116
|
+
type: "string",
|
|
1041
1117
|
description: "日期字符串"
|
|
1042
1118
|
},
|
|
1043
1119
|
namespace: "日期函数"
|
|
@@ -1056,6 +1132,11 @@ var doc = [
|
|
|
1056
1132
|
type: "string",
|
|
1057
1133
|
name: "unit",
|
|
1058
1134
|
description: "比如可以传入 'day'、'month'、'year' 或者 `week` 等等"
|
|
1135
|
+
},
|
|
1136
|
+
{
|
|
1137
|
+
type: "string",
|
|
1138
|
+
name: "format",
|
|
1139
|
+
description: "日期格式,可选"
|
|
1059
1140
|
}
|
|
1060
1141
|
],
|
|
1061
1142
|
returns: {
|
|
@@ -1078,6 +1159,11 @@ var doc = [
|
|
|
1078
1159
|
type: "string",
|
|
1079
1160
|
name: "unit",
|
|
1080
1161
|
description: "比如可以传入 'day'、'month'、'year' 或者 `week` 等等"
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
type: "string",
|
|
1165
|
+
name: "format",
|
|
1166
|
+
description: "日期格式,可选"
|
|
1081
1167
|
}
|
|
1082
1168
|
],
|
|
1083
1169
|
returns: {
|
|
@@ -1379,6 +1465,38 @@ var doc = [
|
|
|
1379
1465
|
},
|
|
1380
1466
|
namespace: "日期函数"
|
|
1381
1467
|
},
|
|
1468
|
+
{
|
|
1469
|
+
name: "BETWEENRANGE",
|
|
1470
|
+
description: "判断日期是否在指定范围内\n\n示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])",
|
|
1471
|
+
example: "BETWEENRANGE(date, [start, end])",
|
|
1472
|
+
params: [
|
|
1473
|
+
{
|
|
1474
|
+
type: "any",
|
|
1475
|
+
name: "date",
|
|
1476
|
+
description: "第一个日期"
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
type: "Array<any>",
|
|
1480
|
+
name: "daterange",
|
|
1481
|
+
description: "日期范围"
|
|
1482
|
+
},
|
|
1483
|
+
{
|
|
1484
|
+
type: "string",
|
|
1485
|
+
name: "unit",
|
|
1486
|
+
description: "单位,默认是 'day', 即之比较到天"
|
|
1487
|
+
},
|
|
1488
|
+
{
|
|
1489
|
+
type: "string",
|
|
1490
|
+
name: "inclusivity",
|
|
1491
|
+
description: "包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除"
|
|
1492
|
+
}
|
|
1493
|
+
],
|
|
1494
|
+
returns: {
|
|
1495
|
+
type: "boolean",
|
|
1496
|
+
description: "判断结果"
|
|
1497
|
+
},
|
|
1498
|
+
namespace: "日期函数"
|
|
1499
|
+
},
|
|
1382
1500
|
{
|
|
1383
1501
|
name: "ISSAMEORBEFORE",
|
|
1384
1502
|
description: "判断两个日期,是否第一个日期在第二个日期的前面或者相等",
|
|
@@ -1494,6 +1612,116 @@ var doc = [
|
|
|
1494
1612
|
},
|
|
1495
1613
|
namespace: "数组"
|
|
1496
1614
|
},
|
|
1615
|
+
{
|
|
1616
|
+
name: "ARRAYFINDINDEX",
|
|
1617
|
+
description: "数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员的索引。\n\n示例:\n\nARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1",
|
|
1618
|
+
example: "ARRAYFINDINDEX(arr, item => item === 2)",
|
|
1619
|
+
params: [
|
|
1620
|
+
{
|
|
1621
|
+
type: "Array<any>",
|
|
1622
|
+
name: "arr",
|
|
1623
|
+
description: "数组"
|
|
1624
|
+
},
|
|
1625
|
+
{
|
|
1626
|
+
type: "Array<any>",
|
|
1627
|
+
name: "iterator",
|
|
1628
|
+
description: "箭头函数"
|
|
1629
|
+
}
|
|
1630
|
+
],
|
|
1631
|
+
returns: {
|
|
1632
|
+
type: "number",
|
|
1633
|
+
description: "结果"
|
|
1634
|
+
},
|
|
1635
|
+
namespace: "数组"
|
|
1636
|
+
},
|
|
1637
|
+
{
|
|
1638
|
+
name: "ARRAYFIND",
|
|
1639
|
+
description: "数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员。\n\n示例:\n\nARRAYFIND([0, 2, false], item => item === 2) 得到 2",
|
|
1640
|
+
example: "ARRAYFIND(arr, item => item === 2)",
|
|
1641
|
+
params: [
|
|
1642
|
+
{
|
|
1643
|
+
type: "Array<any>",
|
|
1644
|
+
name: "arr",
|
|
1645
|
+
description: "数组"
|
|
1646
|
+
},
|
|
1647
|
+
{
|
|
1648
|
+
type: "Array<any>",
|
|
1649
|
+
name: "iterator",
|
|
1650
|
+
description: "箭头函数"
|
|
1651
|
+
}
|
|
1652
|
+
],
|
|
1653
|
+
returns: {
|
|
1654
|
+
type: "any",
|
|
1655
|
+
description: "结果"
|
|
1656
|
+
},
|
|
1657
|
+
namespace: "数组"
|
|
1658
|
+
},
|
|
1659
|
+
{
|
|
1660
|
+
name: "ARRAYSOME",
|
|
1661
|
+
description: "数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数是否存在返回为 true 的成员。\n\n示例:\n\nARRAYSOME([0, 2, false], item => item === 2) 得到 true",
|
|
1662
|
+
example: "ARRAYSOME(arr, item => item === 2)",
|
|
1663
|
+
params: [
|
|
1664
|
+
{
|
|
1665
|
+
type: "Array<any>",
|
|
1666
|
+
name: "arr",
|
|
1667
|
+
description: "数组"
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
type: "Array<any>",
|
|
1671
|
+
name: "iterator",
|
|
1672
|
+
description: "箭头函数"
|
|
1673
|
+
}
|
|
1674
|
+
],
|
|
1675
|
+
returns: {
|
|
1676
|
+
type: "boolean",
|
|
1677
|
+
description: "结果"
|
|
1678
|
+
},
|
|
1679
|
+
namespace: "数组"
|
|
1680
|
+
},
|
|
1681
|
+
{
|
|
1682
|
+
name: "ARRAYEVERY",
|
|
1683
|
+
description: "数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数返回是否都为 true。\n\n示例:\n\nARRAYEVERY([0, 2, false], item => item === 2) 得到 false",
|
|
1684
|
+
example: "ARRAYEVERY(arr, item => item === 2)",
|
|
1685
|
+
params: [
|
|
1686
|
+
{
|
|
1687
|
+
type: "Array<any>",
|
|
1688
|
+
name: "arr",
|
|
1689
|
+
description: "数组"
|
|
1690
|
+
},
|
|
1691
|
+
{
|
|
1692
|
+
type: "Array<any>",
|
|
1693
|
+
name: "iterator",
|
|
1694
|
+
description: "箭头函数"
|
|
1695
|
+
}
|
|
1696
|
+
],
|
|
1697
|
+
returns: {
|
|
1698
|
+
type: "boolean",
|
|
1699
|
+
description: "结果"
|
|
1700
|
+
},
|
|
1701
|
+
namespace: "数组"
|
|
1702
|
+
},
|
|
1703
|
+
{
|
|
1704
|
+
name: "ARRAYINCLUDES",
|
|
1705
|
+
description: "判断数据中是否存在指定元素\n\n示例:\n\nARRAYINCLUDES([0, 2, false], 2) 得到 true",
|
|
1706
|
+
example: "ARRAYINCLUDES(arr, 2)",
|
|
1707
|
+
params: [
|
|
1708
|
+
{
|
|
1709
|
+
type: "Array<any>",
|
|
1710
|
+
name: "arr",
|
|
1711
|
+
description: "数组"
|
|
1712
|
+
},
|
|
1713
|
+
{
|
|
1714
|
+
type: "any",
|
|
1715
|
+
name: "item",
|
|
1716
|
+
description: "元素"
|
|
1717
|
+
}
|
|
1718
|
+
],
|
|
1719
|
+
returns: {
|
|
1720
|
+
type: "any",
|
|
1721
|
+
description: "结果"
|
|
1722
|
+
},
|
|
1723
|
+
namespace: "数组"
|
|
1724
|
+
},
|
|
1497
1725
|
{
|
|
1498
1726
|
name: "COMPACT",
|
|
1499
1727
|
description: "数组过滤掉 false、null、0 和 \"\"\n\n示例:\n\nCOMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]",
|
|
@@ -1572,6 +1800,67 @@ var doc = [
|
|
|
1572
1800
|
},
|
|
1573
1801
|
namespace: "数组"
|
|
1574
1802
|
},
|
|
1803
|
+
{
|
|
1804
|
+
name: "ENCODEJSON",
|
|
1805
|
+
description: "将JS对象转换成JSON字符串\n\n示例:\n\nENCODEJSON({name: 'amis'}) 得到 '{\"name\":\"amis\"}'",
|
|
1806
|
+
example: "ENCODEJSON({name: 'amis'})",
|
|
1807
|
+
params: [
|
|
1808
|
+
{
|
|
1809
|
+
type: "object",
|
|
1810
|
+
name: "obj",
|
|
1811
|
+
description: "JS对象"
|
|
1812
|
+
}
|
|
1813
|
+
],
|
|
1814
|
+
returns: {
|
|
1815
|
+
type: "string",
|
|
1816
|
+
description: "结果"
|
|
1817
|
+
},
|
|
1818
|
+
namespace: "编码"
|
|
1819
|
+
},
|
|
1820
|
+
{
|
|
1821
|
+
name: "DECODEJSON",
|
|
1822
|
+
description: "解析JSON编码数据,返回JS对象\n\n示例:\n\nDECODEJSON('{\\\"name\\\": \"amis\"}') 得到 {name: 'amis'}",
|
|
1823
|
+
example: "DECODEJSON('{\\\"name\\\": \"amis\"}')",
|
|
1824
|
+
params: [
|
|
1825
|
+
{
|
|
1826
|
+
type: "string",
|
|
1827
|
+
name: "str",
|
|
1828
|
+
description: "字符串"
|
|
1829
|
+
}
|
|
1830
|
+
],
|
|
1831
|
+
returns: {
|
|
1832
|
+
type: "object",
|
|
1833
|
+
description: "结果"
|
|
1834
|
+
},
|
|
1835
|
+
namespace: "编码"
|
|
1836
|
+
},
|
|
1837
|
+
{
|
|
1838
|
+
name: "GET",
|
|
1839
|
+
description: "根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代\n\n示例:\n\nGET([0, 2, {name: 'amis', age: 18}], 1) 得到 2\nGET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis'\nGET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'",
|
|
1840
|
+
example: "GET(arr, 2)",
|
|
1841
|
+
params: [
|
|
1842
|
+
{
|
|
1843
|
+
type: "any",
|
|
1844
|
+
name: "obj",
|
|
1845
|
+
description: "对象或数组"
|
|
1846
|
+
},
|
|
1847
|
+
{
|
|
1848
|
+
type: "string",
|
|
1849
|
+
name: "path",
|
|
1850
|
+
description: "路径"
|
|
1851
|
+
},
|
|
1852
|
+
{
|
|
1853
|
+
type: "any",
|
|
1854
|
+
name: "defaultValue",
|
|
1855
|
+
description: "如果解析不到则返回该值"
|
|
1856
|
+
}
|
|
1857
|
+
],
|
|
1858
|
+
returns: {
|
|
1859
|
+
type: "any",
|
|
1860
|
+
description: "结果"
|
|
1861
|
+
},
|
|
1862
|
+
namespace: "其他"
|
|
1863
|
+
},
|
|
1575
1864
|
{
|
|
1576
1865
|
name: "ISTYPE",
|
|
1577
1866
|
description: "判断是否为类型支持:string, number, array, date, plain-object。",
|
|
@@ -1585,7 +1874,7 @@ var doc = [
|
|
|
1585
1874
|
],
|
|
1586
1875
|
returns: {
|
|
1587
1876
|
type: "boolean",
|
|
1588
|
-
description: "
|
|
1877
|
+
description: "结果"
|
|
1589
1878
|
},
|
|
1590
1879
|
namespace: "其他"
|
|
1591
1880
|
}
|
package/esm/doc.md
CHANGED
|
@@ -612,16 +612,75 @@
|
|
|
612
612
|
|
|
613
613
|
返回现在的日期
|
|
614
614
|
|
|
615
|
+
### WEEKDAY
|
|
616
|
+
|
|
617
|
+
用法:`WEEKDAY(date)`
|
|
618
|
+
|
|
619
|
+
* `date:any` 日期
|
|
620
|
+
* `type:number` 星期定义类型,默认为1,1表示0至6代表星期一到星期日,2表示1至7代表星期一到星期日
|
|
621
|
+
|
|
622
|
+
返回:`number` 星期几的数字标识
|
|
623
|
+
|
|
624
|
+
获取日期的星期几,
|
|
625
|
+
|
|
626
|
+
示例:
|
|
627
|
+
|
|
628
|
+
WEEKDAY('2023-02-27') 得到 1
|
|
629
|
+
|
|
630
|
+
### WEEK
|
|
631
|
+
|
|
632
|
+
用法:`WEEK(date)`
|
|
633
|
+
|
|
634
|
+
* `date:any` 日期
|
|
635
|
+
* `isISO:boolean` 是否ISO星期
|
|
636
|
+
|
|
637
|
+
返回:`number` 星期几的数字标识
|
|
638
|
+
|
|
639
|
+
获取年份的星期,即第几周
|
|
640
|
+
|
|
641
|
+
示例:
|
|
642
|
+
|
|
643
|
+
WEEK('2023-03-05') 得到 10
|
|
644
|
+
|
|
615
645
|
### DATETOSTR
|
|
616
646
|
|
|
617
647
|
用法:`DATETOSTR(date, 'YYYY-MM-DD')`
|
|
618
648
|
|
|
619
|
-
* `date:
|
|
649
|
+
* `date:any` 日期对象、日期字符串、时间戳
|
|
620
650
|
* `format:string` 日期格式,默认为 "YYYY-MM-DD HH:mm:ss"
|
|
621
651
|
|
|
622
|
-
返回:`
|
|
652
|
+
返回:`string` 日期字符串
|
|
653
|
+
|
|
654
|
+
对日期、日期字符串、时间戳进行格式化
|
|
655
|
+
|
|
656
|
+
示例:
|
|
657
|
+
|
|
658
|
+
DATETOSTR('12/25/2022', 'YYYY-MM-DD') 得到 '2022.12.25'
|
|
659
|
+
DATETOSTR(1676563200, 'YYYY.MM.DD') 得到 '2023.02.17'
|
|
660
|
+
DATETOSTR(1676563200000, 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
661
|
+
DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00'
|
|
662
|
+
|
|
663
|
+
### DATERANGESPLIT
|
|
623
664
|
|
|
624
|
-
|
|
665
|
+
用法:`DATERANGESPLIT(date, 'YYYY-MM-DD')`
|
|
666
|
+
|
|
667
|
+
* `date:string` 日期范围字符串
|
|
668
|
+
* `key:string` 取值标识,0或'start'表示获取开始时间,1或'end'表示获取结束时间
|
|
669
|
+
* `format:string` 日期格式,可选
|
|
670
|
+
* `delimiter:string` 分隔符,可选,默认为','
|
|
671
|
+
|
|
672
|
+
返回:`string` 日期字符串
|
|
673
|
+
|
|
674
|
+
获取日期范围字符串中的开始时间、结束时间
|
|
675
|
+
|
|
676
|
+
示例:
|
|
677
|
+
|
|
678
|
+
DATERANGESPLIT('1676563200, 1676735999') 得到 [1676563200, 1676735999]
|
|
679
|
+
DATERANGESPLIT('1676563200, 1676735999', undefined , 'YYYY.MM.DD hh:mm:ss') 得到 [2023.02.17 12:00:00, 2023.02.18 11:59:59]
|
|
680
|
+
DATERANGESPLIT('1676563200, 1676735999', 0 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
681
|
+
DATERANGESPLIT('1676563200, 1676735999', 'start' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.17 12:00:00'
|
|
682
|
+
DATERANGESPLIT('1676563200, 1676735999', 1 , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'
|
|
683
|
+
DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '2023.02.18 11:59:59'
|
|
625
684
|
|
|
626
685
|
### STARTOF
|
|
627
686
|
|
|
@@ -629,6 +688,7 @@
|
|
|
629
688
|
|
|
630
689
|
* `date:date` 日期对象
|
|
631
690
|
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
|
691
|
+
* `format:string` 日期格式,可选
|
|
632
692
|
|
|
633
693
|
返回:`date` 新的日期对象
|
|
634
694
|
|
|
@@ -640,6 +700,7 @@
|
|
|
640
700
|
|
|
641
701
|
* `date:date` 日期对象
|
|
642
702
|
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
|
703
|
+
* `format:string` 日期格式,可选
|
|
643
704
|
|
|
644
705
|
返回:`date` 新的日期对象
|
|
645
706
|
|
|
@@ -804,6 +865,21 @@ DATEMODIFY(A, -2, 'month')
|
|
|
804
865
|
|
|
805
866
|
判断两个日期,是否第一个日期在第二个日期的后面
|
|
806
867
|
|
|
868
|
+
### BETWEENRANGE
|
|
869
|
+
|
|
870
|
+
用法:`BETWEENRANGE(date, [start, end])`
|
|
871
|
+
|
|
872
|
+
* `date:any` 第一个日期
|
|
873
|
+
* `daterange:Array<any>` 日期范围
|
|
874
|
+
* `unit:string` 单位,默认是 'day', 即之比较到天
|
|
875
|
+
* `inclusivity:string` 包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除
|
|
876
|
+
|
|
877
|
+
返回:`boolean` 判断结果
|
|
878
|
+
|
|
879
|
+
判断日期是否在指定范围内
|
|
880
|
+
|
|
881
|
+
示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])
|
|
882
|
+
|
|
807
883
|
### ISSAMEORBEFORE
|
|
808
884
|
|
|
809
885
|
用法:`ISSAMEORBEFORE(a, b)`
|
|
@@ -863,6 +939,85 @@ DATEMODIFY(A, -2, 'month')
|
|
|
863
939
|
数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
864
940
|
将第二个箭头函数返回为 false 的成员过滤掉。
|
|
865
941
|
|
|
942
|
+
### ARRAYFINDINDEX
|
|
943
|
+
|
|
944
|
+
用法:`ARRAYFINDINDEX(arr, item => item === 2)`
|
|
945
|
+
|
|
946
|
+
* `arr:Array<any>` 数组
|
|
947
|
+
* `iterator:Array<any>` 箭头函数
|
|
948
|
+
|
|
949
|
+
返回:`number` 结果
|
|
950
|
+
|
|
951
|
+
数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
952
|
+
找出第二个箭头函数返回为 true 的成员的索引。
|
|
953
|
+
|
|
954
|
+
示例:
|
|
955
|
+
|
|
956
|
+
ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1
|
|
957
|
+
|
|
958
|
+
### ARRAYFIND
|
|
959
|
+
|
|
960
|
+
用法:`ARRAYFIND(arr, item => item === 2)`
|
|
961
|
+
|
|
962
|
+
* `arr:Array<any>` 数组
|
|
963
|
+
* `iterator:Array<any>` 箭头函数
|
|
964
|
+
|
|
965
|
+
返回:`any` 结果
|
|
966
|
+
|
|
967
|
+
数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
968
|
+
找出第二个箭头函数返回为 true 的成员。
|
|
969
|
+
|
|
970
|
+
示例:
|
|
971
|
+
|
|
972
|
+
ARRAYFIND([0, 2, false], item => item === 2) 得到 2
|
|
973
|
+
|
|
974
|
+
### ARRAYSOME
|
|
975
|
+
|
|
976
|
+
用法:`ARRAYSOME(arr, item => item === 2)`
|
|
977
|
+
|
|
978
|
+
* `arr:Array<any>` 数组
|
|
979
|
+
* `iterator:Array<any>` 箭头函数
|
|
980
|
+
|
|
981
|
+
返回:`boolean` 结果
|
|
982
|
+
|
|
983
|
+
数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
984
|
+
判断第二个箭头函数是否存在返回为 true 的成员。
|
|
985
|
+
|
|
986
|
+
示例:
|
|
987
|
+
|
|
988
|
+
ARRAYSOME([0, 2, false], item => item === 2) 得到 true
|
|
989
|
+
|
|
990
|
+
### ARRAYEVERY
|
|
991
|
+
|
|
992
|
+
用法:`ARRAYEVERY(arr, item => item === 2)`
|
|
993
|
+
|
|
994
|
+
* `arr:Array<any>` 数组
|
|
995
|
+
* `iterator:Array<any>` 箭头函数
|
|
996
|
+
|
|
997
|
+
返回:`boolean` 结果
|
|
998
|
+
|
|
999
|
+
数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
|
|
1000
|
+
判断第二个箭头函数返回是否都为 true。
|
|
1001
|
+
|
|
1002
|
+
示例:
|
|
1003
|
+
|
|
1004
|
+
ARRAYEVERY([0, 2, false], item => item === 2) 得到 false
|
|
1005
|
+
|
|
1006
|
+
### ARRAYINCLUDES
|
|
1007
|
+
|
|
1008
|
+
用法:`ARRAYINCLUDES(arr, 2)`
|
|
1009
|
+
|
|
1010
|
+
* `arr:Array<any>` 数组
|
|
1011
|
+
* `item:any` 元素
|
|
1012
|
+
|
|
1013
|
+
返回:`any` 结果
|
|
1014
|
+
|
|
1015
|
+
判断数据中是否存在指定元素
|
|
1016
|
+
|
|
1017
|
+
示例:
|
|
1018
|
+
|
|
1019
|
+
ARRAYINCLUDES([0, 2, false], 2) 得到 true
|
|
1020
|
+
|
|
866
1021
|
### COMPACT
|
|
867
1022
|
|
|
868
1023
|
用法:`COMPACT(arr)`
|
|
@@ -921,15 +1076,65 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
|
|
|
921
1076
|
|
|
922
1077
|
UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')
|
|
923
1078
|
|
|
1079
|
+
## 编码
|
|
1080
|
+
|
|
1081
|
+
### ENCODEJSON
|
|
1082
|
+
|
|
1083
|
+
用法:`ENCODEJSON({name: 'amis'})`
|
|
1084
|
+
|
|
1085
|
+
* `obj:object` JS对象
|
|
1086
|
+
|
|
1087
|
+
返回:`string` 结果
|
|
1088
|
+
|
|
1089
|
+
将JS对象转换成JSON字符串
|
|
1090
|
+
|
|
1091
|
+
示例:
|
|
1092
|
+
|
|
1093
|
+
ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'
|
|
1094
|
+
|
|
1095
|
+
### DECODEJSON
|
|
1096
|
+
|
|
1097
|
+
用法:`DECODEJSON('{\"name\": "amis"}')`
|
|
1098
|
+
|
|
1099
|
+
* `str:string` 字符串
|
|
1100
|
+
|
|
1101
|
+
返回:`object` 结果
|
|
1102
|
+
|
|
1103
|
+
解析JSON编码数据,返回JS对象
|
|
1104
|
+
|
|
1105
|
+
示例:
|
|
1106
|
+
|
|
1107
|
+
DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}
|
|
1108
|
+
|
|
924
1109
|
## 其他
|
|
925
1110
|
|
|
1111
|
+
### GET
|
|
1112
|
+
|
|
1113
|
+
用法:`GET(arr, 2)`
|
|
1114
|
+
|
|
1115
|
+
* `obj:any` 对象或数组
|
|
1116
|
+
* `path:string` 路径
|
|
1117
|
+
* `defaultValue:any` 如果解析不到则返回该值
|
|
1118
|
+
|
|
1119
|
+
返回:`any` 结果
|
|
1120
|
+
|
|
1121
|
+
根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代
|
|
1122
|
+
|
|
1123
|
+
示例:
|
|
1124
|
+
|
|
1125
|
+
GET([0, 2, {name: 'amis', age: 18}], 1) 得到 2
|
|
1126
|
+
GET([0, 2, {name: 'amis', age: 18}], '2.name') 得到 'amis'
|
|
1127
|
+
GET({arr: [{name: 'amis', age: 18}]}, 'arr[0].name') 得到 'amis'
|
|
1128
|
+
GET({arr: [{name: 'amis', age: 18}]}, 'arr.0.name') 得到 'amis'
|
|
1129
|
+
GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-found'
|
|
1130
|
+
|
|
926
1131
|
### ISTYPE
|
|
927
1132
|
|
|
928
1133
|
用法:`ISTYPE([{a: '1'}, {b: '2'}, {a: '1'}], 'array')`
|
|
929
1134
|
|
|
930
1135
|
* `判断对象:string` null
|
|
931
1136
|
|
|
932
|
-
返回:`boolean`
|
|
1137
|
+
返回:`boolean` 结果
|
|
933
1138
|
|
|
934
1139
|
判断是否为类型支持:string, number, array, date, plain-object。
|
|
935
1140
|
|