getMinutes() 0-9 - 如何显示两位数字

getMinutes() 0-9 - How to display two digit numbers?

本文关键字:数字 显示 两位 何显示 getMinutes      更新时间:2023-09-26
var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)

这将返回 3。

  1. 如何使其返回"03"?
  2. 为什么.length不被发现地返回?

我试过这个,但它不起作用:

如果是strlen == 1num = ('0' + num);

var date = new Date("2012-01-18T16:03");
console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );

Yikes 这些答案不是很好,即使是顶级帖子也上升了。在这里,跨浏览器和更干净的整数/字符串转换。另外,我的建议是不要在像date = Date(...)这样的代码中使用变量名称"date",因为您严重依赖语言区分大小写(它可以工作,但当您使用具有不同规则的不同语言的服务器/浏览器代码时,它有风险(。所以假设 javascript Date 在 var current_date

mins = ('0'+current_date.getMinutes()).slice(-2);

该技术是将"0"最右边的 2 个字符(slice(-2))附加到 getMinutes() 的字符串值上。所以:

"0"+"12" -> "012".slice(-2) -> "12"

"0"+"1" -> "01".slice(-2) -> "01"

另一种简短的方法是使用以下命令用前导零填充分钟:

String(date.getMinutes()).padStart(2, "0");

含义:使字符串长两个字符,如果缺少字符,则在此位置设置0

请参阅str.padStart(targetLength,padString(上的文档

优雅的

ES6函数将日期格式化为hh:mm:ss

const leadingZero = (num) => `0${num}`.slice(-2);
const formatTime = (date) =>
  [date.getHours(), date.getMinutes(), date.getSeconds()]
  .map(leadingZero)
  .join(':');

使用 ECMAScript 国际化 API,更多信息:

const date_string = "2012-01-18T16:03";
const date = new Date(date_string);
const twoDigitMinutes = date.toLocaleString("en-us", {year: 'numeric', month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit', second: "2-digit"});
console.log(twoDigitMinutes);

如果

可以的话,我想为这个问题提供一个更简洁的解决方案。接受的答案非常好。但我会这样做。

Date.prototype.getFullMinutes = function () {
   if (this.getMinutes() < 10) {
       return '0' + this.getMinutes();
   }
   return this.getMinutes();
};

现在如果你想使用它。

console.log(date.getFullMinutes());

我建议:

var minutes = data.getMinutes();
minutes = minutes > 9 ? minutes : '0' + minutes;

它少了一个函数调用。考虑性能总是好的。它也很短;

我假设您需要将值作为字符串。您可以使用下面的代码。它将始终返回给您两位数的分钟作为字符串。

const date_string = "2012-01-18T16:03";
const date = new Date(date_string);
let min = date.getMinutes();
if (min < 10) { // or min = min < 10 ? '0' + min : min;
   min = '0' + min;
} else {
   min = min + '';
}
console.log(min);

希望这有帮助。

另一种选择:

var dateTime = new Date();
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2);

这个怎么样? 它对我有用! :)

var d = new Date();
var minutes = d.getMinutes().toString().replace(/^('d)$/, '0$1');

你应该检查它是否小于10...不寻找它的长度,因为这是一个数字而不是一个字符串

.length未定义,因为getMinutes返回的是数字,而不是字符串。 数字没有length属性。 你可以做

var m = "" + date.getMinutes();

使其成为字符串,请检查长度(您可能要检查 length === 1 ,而不是 0(。

数字没有长度,但您可以轻松地将数字转换为字符串,检查长度,然后在必要时在前面加上 0:

var strMonth = '' + date.getMinutes((;if (strMonth.length == 1( {  strMonth = '0' + strMonth;}

我在这里看不到任何 ES6 答案,所以我将使用 StandardJS 格式添加一个

// ES6 String formatting example
const time = new Date()
const tempMinutes = new Date.getMinutes()
const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes

const date_string = "2012-01-18T16:03";
const date = new Date(date_string);
const dd = date.getDate();
const MM = date.getMonth();
const mm = date.getMinutes();
const HH = date.getHours();
// Year
const year = date.getFullYear();
// Month
const month = ("0" + (MM + 1)).slice(-2); // first month start from 0, so add +1
// Day
const day = ("0" + dd).slice(-2);
// Hour
const hour = ("0" + HH).slice(-2);
// Minutes
const minutes = ("0" + mm).slice(-2);
// Seconds
const seconds = ("0" + mm).slice(-2);
console.log(year, month, day, hour, minutes, seconds);

我通常使用这段代码:

var start = new Date(timestamp),
    startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes();

它与@ogur接受的答案非常相似,但在不需要 0 的情况下不会连接空字符串。不确定它更好。只是另一种方法!

$(".min").append( (date.getMinutes()<10?'0':'') + date.getMinutes() );

JS新手,所以这很有帮助最 PPL 看着这个问题 新 太所以这就是我让它显示在名为"class="min"的div 中的方式

希望它对某人有所帮助

获取两位数分钟或小时的另一个选项。

var date = new Date("2012-01-18T16:03");
var minutes = date.toTimeString().slice(3, 5); 
var hours   = date.toTimeString().slice(0, 2); 
您可以使用

moment.js :

moment(date).format('mm')

例 : moment('2019-10-29T21:08').format('mm') ==> 08

希望它对某人有所帮助

链接 github
https://github.com/moment/moment/

对于两位数的分钟,请使用: new Date().toLocaleFormat("%M")

如果你在项目中使用 AngularJS,只需注入$filter并像下面这样使用它:

$filter('date')(value, 'HH:mm')

您还可以在模板中格式化输出,有关过滤器的更多信息,请参阅此处。