搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

HTML input Time state (type=time) not localised to 24-hour input format

more options

The following HTML feature is the subject of this question.

<input type="time"> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/time

Firefox is supposed to use a 12- or 24-hour format for input depending on region settings or locale.

I think I should see a 24-hour input format. Firefox only ever presents me with 12-hour input format -- with AM/PM selectors. Chrome, by comparison, presents 24-hour input format, out of the box, as expected. Is this a localisation bug in Firefox, or am I holding it wrong?

I shall try to upload some screenshots, but in case that does not work, here is a text representation of my state.

I am on a Mac. The Mac is configured for en_AU. (I believe 24-hour clocks are used in the en_AU locale.) Just to be sure, the "Time format: 24-Hour Time" checkbox has been enabled in the Mac's Language & Region system preferences. The following command, entered at a shell, produces the desired output format.

% date +%c Sat 26 Aug 22:48:14 2023

All other applications on my computer honour this preference to the best of my knowledge.

I have the en-GB release of Firefox Nightly. Build ID is 20230825041349. Here are the relevant sections from about:support...

Application Settings Requested Locales ["en-GB"] Available Locales ["en-GB","en-US"] App Locales ["en-GB","en-US"] Regional Preferences ["en-AU"] Default Locale "en-GB" Operating System System Locales ["en-AU"] Regional Preferences ["en-AU"]

intl.regional_prefs.use_os_locales has been set to true in about:config.

Why do I still see 12-hour input formats in Firefox?

Thank you.

The following HTML feature is the subject of this question. <input type="time"> https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/time Firefox is supposed to use a 12- or 24-hour format for input depending on region settings or locale. I think I should see a 24-hour input format. Firefox only ever presents me with 12-hour input format -- with AM/PM selectors. Chrome, by comparison, presents 24-hour input format, out of the box, as expected. Is this a localisation bug in Firefox, or am I holding it wrong? I shall try to upload some screenshots, but in case that does not work, here is a text representation of my state. I am on a Mac. The Mac is configured for en_AU. (I believe 24-hour clocks are used in the [https://lh.2xlibre.net/locale/en_AU/ en_AU locale].) Just to be sure, the "Time format: 24-Hour Time" checkbox has been enabled in the Mac's ''Language & Region'' system preferences. The following command, entered at a shell, produces the desired output format. % date +%c Sat 26 Aug 22:48:14 2023 All other applications on my computer honour this preference to the best of my knowledge. I have the en-GB release of Firefox Nightly. Build ID is 20230825041349. Here are the relevant sections from about:support... Application Settings Requested Locales ["en-GB"] Available Locales ["en-GB","en-US"] App Locales ["en-GB","en-US"] Regional Preferences ["en-AU"] Default Locale "en-GB" Operating System System Locales ["en-AU"] Regional Preferences ["en-AU"] intl.regional_prefs.use_os_locales has been set to true in about:config. Why do I still see 12-hour input formats in Firefox? Thank you.
已附加屏幕截图

由saj-at-discourse于修改

所有回复 (6)

more options

Looks somewhat similar to https://support.mozilla.org/en-US/questions/1235351 However <input type="date"> is correctly localised for me. date is fine. time is not.

I'm happy to take this to Buganizer if you think it is a bug. Thought I should ask here first.

more options

Most locales support 12 hour time which will be preferred, only a few are exclusively 24 hour time like en_IE and en_DK.

On Linux you can change the time locale with the environment variable:

LC_TIME=en_IE.UTF-8

more options

Thank you for your reply.

zeroknight said

Most locales support 12 hour time which will be preferred, only a few are exclusively 24 hour time like en_IE and en_DK.

Yes, I think you are right.

As noted in the OP, on Mac platforms, the system provides a specific 24-Hour Time override, which the user may enable independent from other settings. We can see how this interacts with Apple's localisation libraries. Here is a little Swift program...

import Foundation print(DateFormatter.localizedString(

 from: Date(),
 dateStyle: DateFormatter.Style.none,
 timeStyle: DateFormatter.Style.short))

With the 24-Hour Time override enabled in System Preferences, output is as follows.

19:09

With the 24-Hour Time override disabled in System Preferences, output is as follows.

7:09 pm

So perhaps 12-hour clocks are preferred on en-AU as you say.

I suppose the problem is that, on a Mac, Firefox does not use Apple's localisation libraries, and does not honour the 24-Hour Time override in its own implementation for this platform. (Then again, I noticed Safari suffers from the same problem on <input type="time"> elements!)

On Linux you can change the time locale with the environment variable: LC_TIME=en_IE.UTF-8

The equivalent on this platform would be

open -na 'Firefox Nightly' --env LC_TIME=en_IE.UTF-8

or more simply

LC_TIME=en_IE.UTF-8 open -na 'Firefox Nightly'

I gave this a try but it did not seem to impart any effect on <input type="time"> elements.

由saj-at-discourse于修改

more options

I reconfigured the Mac for English (Ireland) and restarted Firefox. I see 24-hour input widgets now.

Application Settings Requested Locales ["en-GB"] Available Locales ["en-GB","en-US"] App Locales ["en-GB","en-US"] Regional Preferences ["en-IE","en-AU"] Default Locale "en-GB" Operating System System Locales ["en-IE","en-AU"] Regional Preferences ["en-IE","en-AU"]

This feels like a quirky workaround, but I suppose it will do for now.

more options
more options

I have the same, or at least a related, problem.

Running Firefox under Windows, I have, on Windows, set Regional Format to English(United Kingdom), with Regional Format Data set to give date in yyyy-mm-dd (ISO 8601) format (not the default), and time as HH:mm (which I think is the default).

Looking at - on Firefox - a web page with an <input type="datetime-local"> field, as on https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local , I see the date format as dd/mm/yyyy , not yyyy-mm-dd as I would expect (as set in Windows, and appearing on other browsers) - it is using the default option for UK dates, not the ISO option I have changed it to.

Fundamental issue is that Firefox is using the default regional data setting, not the alternate option selected (in the Windows OS locale)

I think this is essentially the same as the OP has, in overiding his normal locale with a non-default option: if not then I have a different problem (beyond Windows/Mac difference)