Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据时区显示电话号码_Javascript_Time_Localization_Timezone - Fatal编程技术网

Javascript 根据时区显示电话号码

Javascript 根据时区显示电话号码,javascript,time,localization,timezone,Javascript,Time,Localization,Timezone,我试图使用JavaScript根据用户PC所在的时区显示电话号码,但我遇到了麻烦。以下是我的代码: <html> <head> <title>Offset Time</title> </head> <body onload ="timezone()"> <script type="text/javascript"> var date = new Date(); var offset = date.ge

我试图使用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>

偏移时间
变量日期=新日期();
var offset=date.getTimezoneOffset();
函数时区(){
var电话;
var div=document.getElementById('date_dependent');
如果(偏移量=240){
电话=“1-877-219-8830”;
}否则如果(偏移量=300){
电话=“1-866-878-7814”;
}否则{
电话=“1-877-868-8121”;
}
}

您的if语句中有一个错误

if (offset = 240) {
应该是

if (offset == 240) {

你的函数定义应该是

var timezone = function(){
在这里:


偏移时间
变量日期=新日期();
var offset=date.getTimezoneOffset();
var timezone=函数(){
var电话;
var div=document.getElementById('date_dependent');
如果(偏移量==240){
电话=“1-877-219-8830”;
}否则如果(偏移量==300){
电话=“1-866-878-7814”;
}否则{
电话=“1-877-868-8121”;
}
}

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

然而,对于您的特定用例有一个解决方案。假设您在美国大陆,并且不关心其他国家的客户,那么您可以测试特定的时间点,而不是当前时间。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;

你得到了什么成果,你期望得到什么成果?另外,这个问题是否真的涉及Java?电话号码与时区的关系如何?由新的代码段运行程序提供。希望很快出现在主网站上!现在,当我使用HTML页面中的值时,如何显示它?java脚本工作得很好,但我不知道如何显示电话变量。你不应该将脚本src放在H3标记中。您已经拥有的代码应该可以工作。您只是从未将该值指定给div标记。
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";
}
div.innerHTML = phone;