数据格式化工具

Format 提供日期、时间戳、秒数、查询字符串、对象、表单和 XML 的轻量转换能力。方法均为静态方法,通过 GB.Format() 取得工具对象后直接调用。

快速开始

先取得 Format 工具对象,再按数据类型调用对应方法。

const format = GB.Format();

format.date('Y-m-d H:i:s');
// 2026-08-31 10:30:00

format.objToQuery({ keyword: 'gentbo', page: 1 });
// keyword=gentbo&page=1

安装与引入

浏览器直接引入

在业务脚本之前加载 Format 工具。

<script src="https://cloud.m775.net/js/format.js"></script>

npm 项目

npm i @gentbo/core

import '@gentbo/core';

日期与时间

.date(type?, timestamp?)格式化当前时间或 10、13 位时间戳。格式中支持 Y/y、m、d、H/h、i、s。
.time(length?, date?)取得指定日期的时间戳;length 可传 10 或 13,默认 10。
.secondToDate(seconds, type?)将秒数转换为时分秒文本,格式支持 h、i、s,默认 h:i:s。
const format = GB.Format();

format.date('Y/m/d H:i', 1725062400);
format.date('y-m-d h:i:s');

format.secondToDate(3725);
// 1:2:5

format.secondToDate(3725, 'h 小时 i 分 s 秒');
// 1 小时 2 分 5 秒

传给 date() 的时间戳应为字符串形式的 10 位秒级或 13 位毫秒级时间戳;未传入时使用当前时间。h 表示 12 小时制,并会在结果末尾附加 am 或 pm。

查询字符串与对象

.queryToObj(query)将查询字符串转换为普通对象,适合处理 URL 参数。
.objToQuery(object)将对象编码为 key=value&... 查询字符串。
.objToString(object, split?, delimiter?)将对象转换为自定义分隔符文本,默认使用分号分隔字段、等号连接键和值。
const format = GB.Format();

format.queryToObj('keyword=gentbo&page=2');
// { keyword: 'gentbo', page: '2' }

format.objToQuery({ keyword: '前端工具', page: 2 });
// keyword=%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7&page=2

format.objToString({ name: 'zhoubo', role: 'admin' });
// name=zhoubo;role=admin;

表单与 XML

.objToForm(object)将对象转换为 FormData,可直接作为请求体提交。
.xmlToObject(xmlDocument)将 XMLDocument 根节点下的元素递归转换为对象。
const format = GB.Format();

const formData = format.objToForm({ name: 'zhoubo', page: 1 });

const xml = new DOMParser().parseFromString(
  '<root><name>Gentbo</name></root>',
  'text/xml'
);

format.xmlToObject(xml);
// { name: 'Gentbo' }

xmlToObject() 接收的是由 DOMParser 等方式创建的 XMLDocument,而不是 XML 字符串。复杂的同名节点、混合文本与属性结构建议在业务层自行约定转换规则。

使用提示

对象转换方法会对键和值进行 URL 编码;如需保留原始文本,请在使用前确认后端的解码规则。secondToDate() 不会自动补零,适合展示时长;需要 01:02:05 形式时,可在业务层补齐。