JSFiddle - React, Tailwind, and code Playground

by CntChen

JavaScript

# timepick 字段定义 #

**所有字段为小写格式**

## 分隔符@ ## 

**SEPARATOR**

分割**timepick**字段内容

包含 **时间倒退值** and **时间倒退参考点**

**timeBack**

**timeStone**

*格式:*


> 时间倒退值**@**时间倒退参考点

*示例:* 
> -7d@mon

`-7d` 表示**时间倒退值**

`mon` 表示**时间倒退参考点**

示例的意义:从这个月开始的时刻倒退7天的那个时刻

## 没有分隔符的 timepick ##
* **now** 表示当前
* **all** 表示不受限制的时间

## 时间倒退值 字段定义 ##
-4 **y** 表示时间倒退单位为年

-4 **mon** 表示时间倒退单位为月

-4 **d** 表示时间倒退单位为日

-4 **w** 表示时间倒退单位为周

-4 **h** 表示时间倒退单位为小时

-4 **m** 表示时间倒退单位为分钟

-4 **s** 表示时间倒退单位为秒

## 时间倒退参考点 字段定义 ##

**y** 表示当前年的开始时刻

**mon** 表示当前月的开始时刻

**d** 表示今天的开始时刻

**w** 表示当前周的开始时刻

**h** 表示当前小时的开始时刻

**m** 表示当前分钟的开始时刻

**s** 表示当前秒的开始时刻

# 时间设置按钮 #

添加 **date-earliest** and **date-lastest** 字段

其值为 **timepick字段**

*示例*
    
    <a href = "javascript:void(0);" class="timepick" date-earliest = "-7d@d" date-lastest = "now">A Hour</a>

`date-earliest = "-7d@d"` 开始时间为 `-7d@d`

`date-lastest = "now"` 结束时间为 `now`

# 优点 #
* 参考了 **splunk** 的方式

* 配置文件的引入,以及用户自定义时间选择器

* 简化了 **HTML** 和 **JS** 代码的编写

# 前端处理方法 #

    编写HTML代码和用户规则的时候,必须实现严格的 timepick 语法,(将会为"用户自定义规则"提供规则检测器)

* **兼容所有严格的 timepick 语法**

* **对不严格语法尽可能处理**


## 处理逻辑 ##

## 兼容列表 ##

* 对于输入 `" "`(空格) 和 `""`(空) 返回当前时间