Определить локаль меридием в момент js - PullRequest
0 голосов
/ 14 апреля 2020

Я хотел бы вызвать момент для возврата логического значения, чтобы определить, использует ли языковой стандарт пользователя (среда браузера?) 12-часовые или 24-часовые часы (поэтому я могу установить флаг для средства выбора часов).

что-то вроде: var IsTwelveHourClock = moment.something()

Я не мог видеть ничего очевидного с того момента, как документы могли бы помочь с этим, так что надеясь на некоторые предложения! Спасибо

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Эй, я нашел и другой способ!

var isTwelveHourClock = момент ('LT'). Длина> 5;

Через двенадцать часов значение (от момента. * 1008) * docs) - это что-то вроде 08:30 PM или 20:30 в других локалях.

0 голосов
/ 14 апреля 2020

Вы можете получить язык браузера с этим:

let userLang = navigator.language || navigator.userLanguage; 

В моем случае будет выведено de-DE. Момент. js просто нужно de без -DE, как я знаю, поэтому вы должны разделить его.

let userLang = navigator.language || navigator.userLanguage; 
let local = userLang.split("-")[0];

И теперь вы можете установить момент. js локаль вот так

moment.locale(local);

С помощью этого кода вы можете проверить, использует ли пользователь военное время или нет:

  var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
  var dateString = date.toLocaleTimeString();

  //apparently toLocaleTimeString() has a bug in Chrome. toString() however 
  //returns 12/24 hour formats. If one of two contains AM/PM execute 12 hour 
  //coding.
  if (dateString.match(/am|pm/i) || date.toString().match(/am|pm/i) )
  {
    //12 hour clock
    console.log("12 hour");
  }
  else
  {
    //24 hour clock
    console.log("24 hour");
  }

Исходное сообщение: Определить с помощью javascript, если машина пользователя использует 12 часов часы (am / pm) или 24 часа (военное время)

...