You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript实现分钟小于10时补前置0的时间格式化问题求助

问题修复:分钟补0不生效的问题

你的代码里补0的操作没有赋值给minutes变量,只是执行了"0" + minutes但没把结果存回去,所以原minutes变量还是原来的数字,自然不会显示带前导0的格式。

修复方案1:修改if语句,赋值回变量

把原来的if块改成这样,将拼接后的字符串赋值给minutes:

var formattedTime = new Date(time + 'z');
var hours = formattedTime.getHours();
var amOrPm = hours >= 12 ? 'PM' : 'AM';
hours = (hours % 12) || 12;

var minutes = formattedTime.getMinutes();
if (minutes < 10) {
  // 把补0后的结果赋值回minutes变量
  minutes = "0" + minutes;
};

var finalTime = eventDate +" "+ hours + ":" + minutes + " " + amOrPm;

修复方案2:用padStart更简洁(推荐)

ES6的padStart方法可以直接给字符串补前导字符,一步到位,不用写if判断:

var formattedTime = new Date(time + 'z');
var hours = formattedTime.getHours();
var amOrPm = hours >= 12 ? 'PM' : 'AM';
hours = (hours % 12) || 12;

// 把数字转成字符串,然后补0到总长度为2位
var minutes = formattedTime.getMinutes().toString().padStart(2, '0');

var finalTime = eventDate +" "+ hours + ":" + minutes + " " + amOrPm;

padStart(2, '0')的作用是:将当前字符串补到总长度为2,如果长度不够就在前面添加'0'。比如数字4转成字符串是"4",补完后变成"04";数字12转成字符串是"12",长度已经满足2位,就不会有变化。

内容的提问来源于stack exchange,提问作者Sarah Hamilton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:05:20