返回

把繁琐的格式转换工作交给API,前端项目公共方法大汇总(下)

前端

前端时间和数字格式化实用指南

在前端开发领域,我们常常需要对时间和数字进行格式化,以符合特定的业务需求或用户界面设计。为了简化这一过程并提高开发效率,本文汇总了最常用的时间和数字格式化方法,并提供详细的代码示例和使用说明。

时间格式化

  • 将时间戳转换为指定格式的字符串
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 ? "-" : "+";
}

结语

掌握这些时间和数字格式化方法将极大地提高您的前端开发效率。这些方法既实用又灵活,可以满足各种格式化需求。通过将它们融入您的项目中,您可以轻松创建用户界面友好且数据准确的应用程序。

常见问题解答

  1. 如何将时间戳格式化为“YYYY-MM-DD HH:mm:ss”格式?
    使用 formatDate 方法并传入 "YYYY-MM-DD HH:mm:ss" 作为 format 参数即可。

  2. 如何将数字格式化为带千分位的整数?
    使用 formatNumber 方法并传入 "###,###" 作为 format 参数即可。

  3. 如何获取指定日期的开始时间戳?
    使用 parseDate 将日期字符串转换为时间戳,然后使用 new Date().setHours(0, 0, 0, 0) 将其设置为当天开始时间。

  4. 如何将数字转换为保留两位小数的字符串?
    使用 formatNumber 方法并传入 "0.00" 作为 format 参数即可。

  5. 如何获取数字的负数?
    使用 getAbsoluteNumber 方法获取数字的绝对值,然后在数字前面加上负号即可。