Javascript 根据时区显示电话号码
我试图使用JavaScript根据用户PC所在的时区显示电话号码,但我遇到了麻烦。以下是我的代码: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
<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;