根据时区显示电话号码



我正试图使用JavaScript根据用户PC所在的时区显示电话号码,但我遇到了麻烦。下面是我的代码:

<html>
<head>
<title>Offset Time</title>
</head>
<body onload ="timezone()">
<script type="text/javascript">
   var date = new Date();
   var offset = date.getTimezoneOffset();  
   function timezone(){
   var Phone;
   var div=document.getElementById('date_dependent');
   if (offset = 240) {
        Phone = "1-877-219-8830";
    } else if (offset = 300) {
    Phone = "1-866-878-7814";
    } else {
    Phone = "1-877-868-8121";
   }
}
</script>
<div id="date_dependent"></div>
</body>
</html>

if语句出错

if (offset = 240) {

应为

if (offset == 240) {

else if (offset = 300)

函数定义应该是

var timezone = function(){

:

<html>
<head>
<title>Offset Time</title>
</head>
<body onload ="timezone()">
<script type="text/javascript">
var date = new Date();
var offset = date.getTimezoneOffset();  
var timezone = function(){
    var Phone;
    var div=document.getElementById('date_dependent');
    if (offset == 240) {
        Phone = "1-877-219-8830";
    } else if (offset == 300) {
        Phone = "1-866-878-7814";
    } else {
        Phone = "1-877-868-8121";
    }
}
</script>
<div id="date_dependent"></div>

通常,仅通过偏移量检测时区是不可靠的。这是因为许多时区共享相同的偏移量,而使用夏令时的时区将在一年中的不同时间使用不同的偏移量。您可以在时区标签wiki中阅读更多内容。

然而,有一个针对您的特定用例的解决方案。假设您在美国大陆,并且您不关心来自其他国家的客户,那么您可以测试特定的时间点,而不是当前时间。1月1日是检索标准时间偏移量的一个很好的测试值,因为它不接近任何夏令时转换。

var date = new Date(2014,0,1); // use Jan 1st, not the current date.
var offset = date.getTimezoneOffset();
var phone;
switch (offset) {
    case 300:
      phone = "The Eastern time zone phone number";
      break;
    case 240:
      phone = "The Central time zone phone number";
      break;
    default:
      phone = "The default phone number";
}

注意,如果您想将亚利桑那州与全国其他地区区分开来,因为它使用夏令时,您将需要测试冬季偏移量(1月1日)和夏季偏移量(7月1日)。我省略了这段代码,因为它不是你最初问题的一部分。

另外,不要忘记实际使用该值!

div.innerHTML = phone;

相关内容

  • 没有找到相关文章

最新更新