Javascript 确定力矩js中的区域设置meridiem

Javascript 确定力矩js中的区域设置meridiem,javascript,jquery,momentjs,Javascript,Jquery,Momentjs,我想调用Moments返回一个bool,以确定用户区域设置(浏览器环境?)是使用12小时还是24小时时钟(这样我可以为时钟选择器设置一个标志) 比如: var istwelvehourlock=moment.something() 从那一刻起,我看不到任何明显的可以帮助解决这个问题的文档,所以希望得到一些建议!谢谢您可以通过以下方式获得浏览器的语言: let userLang = navigator.language || navigator.userLanguage; 在我的例子中,它将输

我想调用Moments返回一个bool,以确定用户区域设置(浏览器环境?)是使用12小时还是24小时时钟(这样我可以为时钟选择器设置一个标志)

比如:
var istwelvehourlock=moment.something()


从那一刻起,我看不到任何明显的可以帮助解决这个问题的文档,所以希望得到一些建议!谢谢

您可以通过以下方式获得浏览器的语言:

let userLang = navigator.language || navigator.userLanguage; 
在我的例子中,它将输出de de。Moment.js只需要
de
,而不需要
-de
,我知道,所以您应该拆分它

let userLang = navigator.language || navigator.userLanguage; 
let local = userLang.split("-")[0];
现在可以像这样设置moment.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");
  }

原始帖子:

嘿,我也找到了另一种方法

var IstwelveHourlock=力矩('LT')。长度>5


在12小时内,值(来自moment.js docs)类似于其他地区的
08:30 PM
20:30

这需要网页中的javascript能够访问主机操作系统中的信息,而这些信息实际上是不需要访问的——简而言之,没有任何东西可以查看用户是否喜欢12小时或24小时格式。谢谢!这就是我设置区域设置的方式……但是对于使用另一个库(如时钟选择器),它需要知道是显示24小时时钟还是12小时时钟。我可以从区域设置中得出这一点吗?我太激动了,哈哈,应该是时候了。格式('LT')这是唯一看起来有效的解决方案:)