工具模块

工具模块 util 是由工具类方法和小组件组成的集合。

示例

API

API

描述

var util = layui.util

获得 util 模块。

util.fixbar(options)

固定条组件

util.countdown(options)

倒计时组件

util.timeAgo(time, onlyDate)

某个时间在多久前

util.toDateString(time, format, options)

将毫秒数或日期对象转换成日期格式字符

util.digit(num, length)

数字前置补零

util.escape(str)

转义 HTML 字符

util.unescape(str)

还原 HTML 字符

util.openWin(options) 2.8+

打开浏览器新标签页

util.on(attr, events, options)

批量事件处理

倒计时

util.countdown(options);

参数 options 2.8.9+: 属性选项。可选项详见下表:

属性

描述

date

目标时间值。值可以为毫秒数或 Date 对象

now

当前时间值,一般为当前服务器时间。值可以为毫秒数或 Date 对象

ready

倒计时初始时的回调函数。

clock

倒计时计时中的回调函数,每秒触发一次,直到计时完成。

done

倒计时计时完成的回调函数,即到达目标时间值时触发

注: 2.8.9 之前的版本写法为:util.countdown(date, now, clock);

该方法返回的实例对象成员如下 2.8.9+:

var countdown = util.countdown(options);

countdown.clear(); // 清除当前倒计时

countdown.reload(options); // 重载当前倒计时。

countdown.timer; // 当前倒计时计时器 ID

相关用法可参考:#示例

layui.use('util', function(){

var util = layui.util;

// 示例

util.countdown({

date: '2099-1-1', // 目标时间值

now: new Date(), // 当前时间,一般为服务器时间,此处以本地时间为例

clock: function(obj, countdown){ // 计时中

console.log(obj); // 得到当前计时器的「天、时、分、秒」值

console.log(countdown); // 得到当前实例对象

},

done: function(obj, countdown){ // 计时完成

console.log('time is up');

}

});

});

某个时间在多久前

var result = util.timeAgo(time, onlyDate);

参数 time : 某个时间的毫秒数或日期对象

参数 onlyDate : 是否在超过 30 天后,只返回日期字符,而不返回时分秒

返回结果

若 time 在 3 分钟以内,返回: 刚刚

若 time 在 30 天以内,返回: 若干分钟前、若干小时前、若干天前,如:5 分钟前

若 time 在 30 天以上,返回: 日期字符,如: 2023-01-01

var result = util.timeAgo(1672531200000); // 2023-01-01 00:00:00

相关效果见:#示例

转换日期格式字符

var result = util.toDateString(time, format, options);

参数 time : 毫秒数或日期对象

参数 format : 日期字符格式。默认格式:yyyy-MM-dd HH:mm:ss 。可自定义,如: yyyy年MM月dd日

参数 options 2.8.13+ : 该方法的属性选项,详见下表:

属性名

描述

类型

默认值

customMeridiem

自定义 meridiem 格式

Function

-

var result = util.toDateString(1672531200000, 'yyyy-MM-dd'); // 2023-01-01

// 中括号中的字符会原样保留 2.8.13+

var result2 = util.toDateString(new Date('2023-01-01 11:35:25'), 'ss[s]'); // 25s

// 自定义 meridiem

var result3 = util.toDateString(

'2023-01-01 11:35:25',

'hh:mm:ss A',

{

customMeridiem: function(hours, minutes){

return (hours < 12 ? 'AM' : 'PM')

//.split('').join('.') // 有句点,A.M.

//.toLowerCase() // 小写,a.m.

}

}

); // 11:35:25 AM

参数 format 所有可用的格式列表 :

格式

示例

描述

yy 2.8.13+

23

年,两位数

yyyy

2023

年,四位数

M 2.8.13+

1-12

MM

01-12

月,两位数

d 2.8.13+

1-31

dd

01-31

日,两位数

H 2.8.13+

0-23

小时

HH

00-23

小时,两位数

h 2.8.13+

1-12

小时,12 小时制

hh 2.8.13+

01-12

小时,12 小时制,两位数

A 2.8.13+

凌晨/早上/上午/中午/下午/晚上

meridiem

m 2.8.13+

0-59

分钟

mm

00-59

分钟,两位数

s 2.8.13+

0-59

ss

00-59

秒,两位数

SSS 2.8.13+

000-999

毫秒,三位数

数字前置补零

util.digit(num, length);

参数 num : 原始数字

参数 length : 数字长度,如果原始数字长度小于 length,则前面补零

该方法返回一个 string 类型的结果,如:

var rs1 = util.digit(6, 2); // "06"

var rs2 = util.digit(7, 3); // "007"

转义和还原 HTML

util.escape(str); 转义 HTML

util.unescape(str); 还原被转义的 HTML

参数 str : 任意 HTML 字符

var str1 = util.escape('

123
'); // 返回: <div>123</div>

var str2 = util.unescape('<div>123</div>'); // 返回:

123

打开浏览器新标签页 2.8+

util.openWin(options);

参数 options : 属性选项。可选项详见下表

属性

描述

url

要打开页面 URL

target

打开页面的方式或窗口 name

content

打开的页面内容。若设置了 url 属性,则该属性无效

specs

窗口的相关配置,同 window.open() 的 specs

window

当前所在的窗口对象,默认 self

该方法基于原生 window.open() 的二次封装,以提升打开浏览器窗口的灵活性。

// 打开一个 url

util.openWin({

url: 'https://cn.bing.com'

});

// 打开一个自定义内容窗口

util.openWin({

content: 'Hello World.'

});

批量事件处理

util.on(attr, events, options);

参数

描述

类型

默认值

attr

触发事件的元素属性名。可省略2.9+

string

lay-on

events

事件集合。包含 attr 对应的属性值和事件回调函数的键值对

object

-

options 2.9+

参数的更多选项。详见下表。

object

-

参数 options 可选项:

options

描述

类型

默认值

elem

触发事件的委托元素

string | HTMLElement | JQuery

-

trigger

事件触发的方式

string

click