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/lib/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
|
|
|
@@ -1024,15 +1024,59 @@ var doc = [
|
|
|
1024
1024
|
},
|
|
1025
1025
|
namespace: "日期函数"
|
|
1026
1026
|
},
|
|
1027
|
+
{
|
|
1028
|
+
name: "WEEKDAY",
|
|
1029
|
+
description: "获取日期的星期几,\n\n示例:\n\nWEEKDAY('2023-02-27') 得到 1",
|
|
1030
|
+
example: "WEEKDAY(date)",
|
|
1031
|
+
params: [
|
|
1032
|
+
{
|
|
1033
|
+
type: "any",
|
|
1034
|
+
name: "date",
|
|
1035
|
+
description: "日期"
|
|
1036
|
+
},
|
|
1037
|
+
{
|
|
1038
|
+
type: "number",
|
|
1039
|
+
name: "type",
|
|
1040
|
+
description: "星期定义类型,默认为1,1表示0至6代表星期一到星期日,2表示1至7代表星期一到星期日"
|
|
1041
|
+
}
|
|
1042
|
+
],
|
|
1043
|
+
returns: {
|
|
1044
|
+
type: "number",
|
|
1045
|
+
description: "星期几的数字标识"
|
|
1046
|
+
},
|
|
1047
|
+
namespace: "日期函数"
|
|
1048
|
+
},
|
|
1049
|
+
{
|
|
1050
|
+
name: "WEEK",
|
|
1051
|
+
description: "获取年份的星期,即第几周\n\n示例:\n\nWEEK('2023-03-05') 得到 10",
|
|
1052
|
+
example: "WEEK(date)",
|
|
1053
|
+
params: [
|
|
1054
|
+
{
|
|
1055
|
+
type: "any",
|
|
1056
|
+
name: "date",
|
|
1057
|
+
description: "日期"
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
type: "boolean",
|
|
1061
|
+
name: "isISO",
|
|
1062
|
+
description: "是否ISO星期"
|
|
1063
|
+
}
|
|
1064
|
+
],
|
|
1065
|
+
returns: {
|
|
1066
|
+
type: "number",
|
|
1067
|
+
description: "星期几的数字标识"
|
|
1068
|
+
},
|
|
1069
|
+
namespace: "日期函数"
|
|
1070
|
+
},
|
|
1027
1071
|
{
|
|
1028
1072
|
name: "DATETOSTR",
|
|
1029
|
-
description: "
|
|
1073
|
+
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'",
|
|
1030
1074
|
example: "DATETOSTR(date, 'YYYY-MM-DD')",
|
|
1031
1075
|
params: [
|
|
1032
1076
|
{
|
|
1033
|
-
type: "
|
|
1077
|
+
type: "any",
|
|
1034
1078
|
name: "date",
|
|
1035
|
-
description: "
|
|
1079
|
+
description: "日期对象、日期字符串、时间戳"
|
|
1036
1080
|
},
|
|
1037
1081
|
{
|
|
1038
1082
|
type: "string",
|
|
@@ -1041,7 +1085,39 @@ var doc = [
|
|
|
1041
1085
|
}
|
|
1042
1086
|
],
|
|
1043
1087
|
returns: {
|
|
1044
|
-
type: "
|
|
1088
|
+
type: "string",
|
|
1089
|
+
description: "日期字符串"
|
|
1090
|
+
},
|
|
1091
|
+
namespace: "日期函数"
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
name: "DATERANGESPLIT",
|
|
1095
|
+
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'",
|
|
1096
|
+
example: "DATERANGESPLIT(date, 'YYYY-MM-DD')",
|
|
1097
|
+
params: [
|
|
1098
|
+
{
|
|
1099
|
+
type: "string",
|
|
1100
|
+
name: "date",
|
|
1101
|
+
description: "日期范围字符串"
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
type: "string",
|
|
1105
|
+
name: "key",
|
|
1106
|
+
description: "取值标识,0或'start'表示获取开始时间,1或'end'表示获取结束时间"
|
|
1107
|
+
},
|
|
1108
|
+
{
|
|
1109
|
+
type: "string",
|
|
1110
|
+
name: "format",
|
|
1111
|
+
description: "日期格式,可选"
|
|
1112
|
+
},
|
|
1113
|
+
{
|
|
1114
|
+
type: "string",
|
|
1115
|
+
name: "delimiter",
|
|
1116
|
+
description: "分隔符,可选,默认为','"
|
|
1117
|
+
}
|
|
1118
|
+
],
|
|
1119
|
+
returns: {
|
|
1120
|
+
type: "string",
|
|
1045
1121
|
description: "日期字符串"
|
|
1046
1122
|
},
|
|
1047
1123
|
namespace: "日期函数"
|
|
@@ -1060,6 +1136,11 @@ var doc = [
|
|
|
1060
1136
|
type: "string",
|
|
1061
1137
|
name: "unit",
|
|
1062
1138
|
description: "比如可以传入 'day'、'month'、'year' 或者 `week` 等等"
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
type: "string",
|
|
1142
|
+
name: "format",
|
|
1143
|
+
description: "日期格式,可选"
|
|
1063
1144
|
}
|
|
1064
1145
|
],
|
|
1065
1146
|
returns: {
|
|
@@ -1082,6 +1163,11 @@ var doc = [
|
|
|
1082
1163
|
type: "string",
|
|
1083
1164
|
name: "unit",
|
|
1084
1165
|
description: "比如可以传入 'day'、'month'、'year' 或者 `week` 等等"
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
type: "string",
|
|
1169
|
+
name: "format",
|
|
1170
|
+
description: "日期格式,可选"
|
|
1085
1171
|
}
|
|
1086
1172
|
],
|
|
1087
1173
|
returns: {
|
|
@@ -1383,6 +1469,38 @@ var doc = [
|
|
|
1383
1469
|
},
|
|
1384
1470
|
namespace: "日期函数"
|
|
1385
1471
|
},
|
|
1472
|
+
{
|
|
1473
|
+
name: "BETWEENRANGE",
|
|
1474
|
+
description: "判断日期是否在指定范围内\n\n示例:BETWEENRANGE('2021/12/6', ['2021/12/5','2021/12/7'])",
|
|
1475
|
+
example: "BETWEENRANGE(date, [start, end])",
|
|
1476
|
+
params: [
|
|
1477
|
+
{
|
|
1478
|
+
type: "any",
|
|
1479
|
+
name: "date",
|
|
1480
|
+
description: "第一个日期"
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
type: "Array<any>",
|
|
1484
|
+
name: "daterange",
|
|
1485
|
+
description: "日期范围"
|
|
1486
|
+
},
|
|
1487
|
+
{
|
|
1488
|
+
type: "string",
|
|
1489
|
+
name: "unit",
|
|
1490
|
+
description: "单位,默认是 'day', 即之比较到天"
|
|
1491
|
+
},
|
|
1492
|
+
{
|
|
1493
|
+
type: "string",
|
|
1494
|
+
name: "inclusivity",
|
|
1495
|
+
description: "包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除"
|
|
1496
|
+
}
|
|
1497
|
+
],
|
|
1498
|
+
returns: {
|
|
1499
|
+
type: "boolean",
|
|
1500
|
+
description: "判断结果"
|
|
1501
|
+
},
|
|
1502
|
+
namespace: "日期函数"
|
|
1503
|
+
},
|
|
1386
1504
|
{
|
|
1387
1505
|
name: "ISSAMEORBEFORE",
|
|
1388
1506
|
description: "判断两个日期,是否第一个日期在第二个日期的前面或者相等",
|
|
@@ -1498,6 +1616,116 @@ var doc = [
|
|
|
1498
1616
|
},
|
|
1499
1617
|
namespace: "数组"
|
|
1500
1618
|
},
|
|
1619
|
+
{
|
|
1620
|
+
name: "ARRAYFINDINDEX",
|
|
1621
|
+
description: "数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员的索引。\n\n示例:\n\nARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1",
|
|
1622
|
+
example: "ARRAYFINDINDEX(arr, item => item === 2)",
|
|
1623
|
+
params: [
|
|
1624
|
+
{
|
|
1625
|
+
type: "Array<any>",
|
|
1626
|
+
name: "arr",
|
|
1627
|
+
description: "数组"
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
type: "Array<any>",
|
|
1631
|
+
name: "iterator",
|
|
1632
|
+
description: "箭头函数"
|
|
1633
|
+
}
|
|
1634
|
+
],
|
|
1635
|
+
returns: {
|
|
1636
|
+
type: "number",
|
|
1637
|
+
description: "结果"
|
|
1638
|
+
},
|
|
1639
|
+
namespace: "数组"
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
name: "ARRAYFIND",
|
|
1643
|
+
description: "数据做数据查找,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n找出第二个箭头函数返回为 true 的成员。\n\n示例:\n\nARRAYFIND([0, 2, false], item => item === 2) 得到 2",
|
|
1644
|
+
example: "ARRAYFIND(arr, item => item === 2)",
|
|
1645
|
+
params: [
|
|
1646
|
+
{
|
|
1647
|
+
type: "Array<any>",
|
|
1648
|
+
name: "arr",
|
|
1649
|
+
description: "数组"
|
|
1650
|
+
},
|
|
1651
|
+
{
|
|
1652
|
+
type: "Array<any>",
|
|
1653
|
+
name: "iterator",
|
|
1654
|
+
description: "箭头函数"
|
|
1655
|
+
}
|
|
1656
|
+
],
|
|
1657
|
+
returns: {
|
|
1658
|
+
type: "any",
|
|
1659
|
+
description: "结果"
|
|
1660
|
+
},
|
|
1661
|
+
namespace: "数组"
|
|
1662
|
+
},
|
|
1663
|
+
{
|
|
1664
|
+
name: "ARRAYSOME",
|
|
1665
|
+
description: "数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数是否存在返回为 true 的成员。\n\n示例:\n\nARRAYSOME([0, 2, false], item => item === 2) 得到 true",
|
|
1666
|
+
example: "ARRAYSOME(arr, item => item === 2)",
|
|
1667
|
+
params: [
|
|
1668
|
+
{
|
|
1669
|
+
type: "Array<any>",
|
|
1670
|
+
name: "arr",
|
|
1671
|
+
description: "数组"
|
|
1672
|
+
},
|
|
1673
|
+
{
|
|
1674
|
+
type: "Array<any>",
|
|
1675
|
+
name: "iterator",
|
|
1676
|
+
description: "箭头函数"
|
|
1677
|
+
}
|
|
1678
|
+
],
|
|
1679
|
+
returns: {
|
|
1680
|
+
type: "boolean",
|
|
1681
|
+
description: "结果"
|
|
1682
|
+
},
|
|
1683
|
+
namespace: "数组"
|
|
1684
|
+
},
|
|
1685
|
+
{
|
|
1686
|
+
name: "ARRAYEVERY",
|
|
1687
|
+
description: "数据做数据遍历判断,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n判断第二个箭头函数返回是否都为 true。\n\n示例:\n\nARRAYEVERY([0, 2, false], item => item === 2) 得到 false",
|
|
1688
|
+
example: "ARRAYEVERY(arr, item => item === 2)",
|
|
1689
|
+
params: [
|
|
1690
|
+
{
|
|
1691
|
+
type: "Array<any>",
|
|
1692
|
+
name: "arr",
|
|
1693
|
+
description: "数组"
|
|
1694
|
+
},
|
|
1695
|
+
{
|
|
1696
|
+
type: "Array<any>",
|
|
1697
|
+
name: "iterator",
|
|
1698
|
+
description: "箭头函数"
|
|
1699
|
+
}
|
|
1700
|
+
],
|
|
1701
|
+
returns: {
|
|
1702
|
+
type: "boolean",
|
|
1703
|
+
description: "结果"
|
|
1704
|
+
},
|
|
1705
|
+
namespace: "数组"
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
name: "ARRAYINCLUDES",
|
|
1709
|
+
description: "判断数据中是否存在指定元素\n\n示例:\n\nARRAYINCLUDES([0, 2, false], 2) 得到 true",
|
|
1710
|
+
example: "ARRAYINCLUDES(arr, 2)",
|
|
1711
|
+
params: [
|
|
1712
|
+
{
|
|
1713
|
+
type: "Array<any>",
|
|
1714
|
+
name: "arr",
|
|
1715
|
+
description: "数组"
|
|
1716
|
+
},
|
|
1717
|
+
{
|
|
1718
|
+
type: "any",
|
|
1719
|
+
name: "item",
|
|
1720
|
+
description: "元素"
|
|
1721
|
+
}
|
|
1722
|
+
],
|
|
1723
|
+
returns: {
|
|
1724
|
+
type: "any",
|
|
1725
|
+
description: "结果"
|
|
1726
|
+
},
|
|
1727
|
+
namespace: "数组"
|
|
1728
|
+
},
|
|
1501
1729
|
{
|
|
1502
1730
|
name: "COMPACT",
|
|
1503
1731
|
description: "数组过滤掉 false、null、0 和 \"\"\n\n示例:\n\nCOMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]",
|
|
@@ -1576,6 +1804,67 @@ var doc = [
|
|
|
1576
1804
|
},
|
|
1577
1805
|
namespace: "数组"
|
|
1578
1806
|
},
|
|
1807
|
+
{
|
|
1808
|
+
name: "ENCODEJSON",
|
|
1809
|
+
description: "将JS对象转换成JSON字符串\n\n示例:\n\nENCODEJSON({name: 'amis'}) 得到 '{\"name\":\"amis\"}'",
|
|
1810
|
+
example: "ENCODEJSON({name: 'amis'})",
|
|
1811
|
+
params: [
|
|
1812
|
+
{
|
|
1813
|
+
type: "object",
|
|
1814
|
+
name: "obj",
|
|
1815
|
+
description: "JS对象"
|
|
1816
|
+
}
|
|
1817
|
+
],
|
|
1818
|
+
returns: {
|
|
1819
|
+
type: "string",
|
|
1820
|
+
description: "结果"
|
|
1821
|
+
},
|
|
1822
|
+
namespace: "编码"
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
name: "DECODEJSON",
|
|
1826
|
+
description: "解析JSON编码数据,返回JS对象\n\n示例:\n\nDECODEJSON('{\\\"name\\\": \"amis\"}') 得到 {name: 'amis'}",
|
|
1827
|
+
example: "DECODEJSON('{\\\"name\\\": \"amis\"}')",
|
|
1828
|
+
params: [
|
|
1829
|
+
{
|
|
1830
|
+
type: "string",
|
|
1831
|
+
name: "str",
|
|
1832
|
+
description: "字符串"
|
|
1833
|
+
}
|
|
1834
|
+
],
|
|
1835
|
+
returns: {
|
|
1836
|
+
type: "object",
|
|
1837
|
+
description: "结果"
|
|
1838
|
+
},
|
|
1839
|
+
namespace: "编码"
|
|
1840
|
+
},
|
|
1841
|
+
{
|
|
1842
|
+
name: "GET",
|
|
1843
|
+
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'",
|
|
1844
|
+
example: "GET(arr, 2)",
|
|
1845
|
+
params: [
|
|
1846
|
+
{
|
|
1847
|
+
type: "any",
|
|
1848
|
+
name: "obj",
|
|
1849
|
+
description: "对象或数组"
|
|
1850
|
+
},
|
|
1851
|
+
{
|
|
1852
|
+
type: "string",
|
|
1853
|
+
name: "path",
|
|
1854
|
+
description: "路径"
|
|
1855
|
+
},
|
|
1856
|
+
{
|
|
1857
|
+
type: "any",
|
|
1858
|
+
name: "defaultValue",
|
|
1859
|
+
description: "如果解析不到则返回该值"
|
|
1860
|
+
}
|
|
1861
|
+
],
|
|
1862
|
+
returns: {
|
|
1863
|
+
type: "any",
|
|
1864
|
+
description: "结果"
|
|
1865
|
+
},
|
|
1866
|
+
namespace: "其他"
|
|
1867
|
+
},
|
|
1579
1868
|
{
|
|
1580
1869
|
name: "ISTYPE",
|
|
1581
1870
|
description: "判断是否为类型支持:string, number, array, date, plain-object。",
|
|
@@ -1589,7 +1878,7 @@ var doc = [
|
|
|
1589
1878
|
],
|
|
1590
1879
|
returns: {
|
|
1591
1880
|
type: "boolean",
|
|
1592
|
-
description: "
|
|
1881
|
+
description: "结果"
|
|
1593
1882
|
},
|
|
1594
1883
|
namespace: "其他"
|
|
1595
1884
|
}
|
package/lib/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
|
|