The below call returns 24:00
in latest Chrome & Opera, while it previously returned 00:00
, is this a by design behavior?
const [, time] = new Date(2020, 1, 1, 0, 0).toLocaleDateString("en-us",
{
hour12: false,
hour: "2-digit",
minute: "2-digit"
}).split(", ");
console.info(time); // 24:00
Use hourCycle
instead of hour12
and set it to h23
.
const [, time] = new Date(2020, 1, 1, 0, 0).toLocaleDateString("en-us",
{
hourCycle: "h23",
hour: "2-digit",
minute: "2-digit"
}).split(", ");
console.info(time); // 00:00
It looks to me like Chrome (or its V8 engine) has updated to match the specification, which says in Step 18(e)(vi):
If p is "hour" and dateTimeFormat.[[HourCycle]] is "h24", then If v is 0, let v be 24.
That specification hasn't changed, but it looks like they must have fixed a bug. (I didn't immediately find one in the V8 or Chromium issue list, but...)
Interestingly, Firefox shows 00:00
, not 24:00
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With