返回
把繁琐的格式转换工作交给API,前端项目公共方法大汇总(下)
前端
2023-11-18 01:40:55
前端时间和数字格式化实用指南
在前端开发领域,我们常常需要对时间和数字进行格式化,以符合特定的业务需求或用户界面设计。为了简化这一过程并提高开发效率,本文汇总了最常用的时间和数字格式化方法,并提供详细的代码示例和使用说明。
时间格式化
- 将时间戳转换为指定格式的字符串
function formatDate(timestamp, format) {
// 根据 format 字符串,提取年月日时分秒,并进行格式化
return format
.replace("YYYY", new Date(timestamp).getFullYear())
.replace("MM", padZero(new Date(timestamp).getMonth() + 1))
.replace("DD", padZero(new Date(timestamp).getDate()))
.replace("hh", padZero(new Date(timestamp).getHours()))
.replace("mm", padZero(new Date(timestamp).getMinutes()))
.replace("ss", padZero(new Date(timestamp).getSeconds()));
}
- 将字符串转换为时间戳
function parseDate(dateString) {
// 使用 new Date() 将日期字符串解析为时间戳
return new Date(dateString).getTime();
}
- 获取当前时间戳
function getCurrentTimestamp() {
// 获取当前时间并转换为时间戳
return new Date().getTime();
}
- 获取当前日期
function getCurrentDate() {
// 获取当前日期的本地化字符串
return new Date().toLocaleDateString();
}
- 获取当前时间
function getCurrentTime() {
// 获取当前时间的本地化字符串
return new Date().toLocaleTimeString();
}
数字格式化
- 将数字转换为指定格式的字符串
function formatNumber(number, format) {
// 根据 format 字符串,提取整数部分和小数部分,并进行格式化
const [integerPart, decimalPart] = format.split(".");
const integerPartRegex = new RegExp(`\\B(?=(\\d{${integerPart}})+(?!\\d))`, "g");
const decimalPartRegex = new RegExp(`\\.(\\d{${decimalPart}})`);
return number
.toFixed(decimalPart.length)
.replace(integerPartRegex, ",")
.replace(decimalPartRegex, "");
}
- 将字符串转换为数字
function parseNumber(numberString) {
// 使用 parseFloat() 将数字字符串解析为数字
return parseFloat(numberString.replace(/,/g, ""));
}
- 获取数字的绝对值
function getAbsoluteNumber(number) {
// 使用 Math.abs() 获取数字的绝对值
return Math.abs(number);
}
- 获取数字的正负号
function getSignOfNumber(number) {
// 根据数字的正负返回 "+" 或 "-"
return number < 0 ? "-" : "+";
}
结语
掌握这些时间和数字格式化方法将极大地提高您的前端开发效率。这些方法既实用又灵活,可以满足各种格式化需求。通过将它们融入您的项目中,您可以轻松创建用户界面友好且数据准确的应用程序。
常见问题解答
-
如何将时间戳格式化为“YYYY-MM-DD HH:mm:ss”格式?
使用formatDate
方法并传入"YYYY-MM-DD HH:mm:ss"
作为format
参数即可。 -
如何将数字格式化为带千分位的整数?
使用formatNumber
方法并传入"###,###"
作为format
参数即可。 -
如何获取指定日期的开始时间戳?
使用parseDate
将日期字符串转换为时间戳,然后使用new Date().setHours(0, 0, 0, 0)
将其设置为当天开始时间。 -
如何将数字转换为保留两位小数的字符串?
使用formatNumber
方法并传入"0.00"
作为format
参数即可。 -
如何获取数字的负数?
使用getAbsoluteNumber
方法获取数字的绝对值,然后在数字前面加上负号即可。