Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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_Jquery_Html_Css - Fatal编程技术网

Javascript 如何根据您所在的时区或当地时间确定显示的图像?

Javascript 如何根据您所在的时区或当地时间确定显示的图像?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我没有访问php的权限。这可能是jquery吗? 这里有一个例子。 假设业务在上午11:00开始,7:00结束,客户希望看到实时聊天图像,显示“我们在线!”但当他们关闭时,他们希望图像显示“我们离线”。 这有用吗?如果有人对此有解决方案,请帮助。谢谢。您可以使用对象获取客户机日期,并简化诸如解析之类的日期操作,您可以使用对象获取客户机日期,并简化诸如解析之类的日期操作,var today=new date(); var today = new Date(); var h = today.

我没有访问php的权限。这可能是jquery吗? 这里有一个例子。 假设业务在上午11:00开始,7:00结束,客户希望看到实时聊天图像,显示“我们在线!”但当他们关闭时,他们希望图像显示“我们离线”。
这有用吗?如果有人对此有解决方案,请帮助。谢谢。

您可以使用对象获取客户机日期,并简化诸如解析之类的日期操作,

您可以使用对象获取客户机日期,并简化诸如解析之类的日期操作,

var today=new date();
var today = new Date();
var h     = today.getHours();
var m     = today.getMinutes();
var s     = today.getSeconds();

if ((h > 18) || (h < 11)) {
   $(img).src('closed.jpg');
}
var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds(); 如果((h>18)|(h<11)){ $(img.src('closed.jpg'); }
var today=新日期();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
如果((h>18)|(h<11)){
$(img.src('closed.jpg');
}

希望下面的内容能对您有所帮助


希望下面的内容能对您有所帮助



以下是使用中央标准时间作为服务器时区补偿其他时区的方法:

javascript/jQuery:

// Translate your hours to UTC, example here is using Central Standard Time (-0500 UTC)
// Opening hour in UTC is 16, Closing hour is 0 the next day
var d = new Date(), 
    open = new Date(), 
    closed = new Date();

// Statically set UTC date for open
open.setUTCHours(16); // Open time at 11:00 am CST which is 16:00 UTC
open.setUTCMinutes(0);
open.setUTCSeconds(0);
open.setUTCMilliseconds(0);

// Statically Set UTC date for closing
closed.setUTCDate(d.getUTCDate()+1); // UTC time rotates back to 0 so we add a day
closed.setUTCHours(0); // Closing time at 7:00 pm CST which is 00:00 UTC (so we need to add a day)
closed.setUTCMinutes(0);
closed.setUTCSeconds(0);
closed.setUTCMilliseconds(0);

// Debugging
console.log("user's date:" + d);
console.log("store open time in user's timezone:" + open);
console.log("store close time in user's timezone:" + closed);
console.log(d > open); // user's time is greater than opening time
console.log(d < closed); // is user's time less than closing time (you don't have to go home...)

// Test for store open?
if (d > open && d < closed) {
    setOpenStatus(true);
}
else {
    setOpenStatus(false);
}

function setOpenStatus(isOpen) {
    $('#open').toggle(isOpen);
    $('#closed').toggle(!isOpen);
}
//将小时转换为UTC,这里的示例是使用中央标准时间(-0500 UTC)
//UTC的营业时间为16小时,第二天的营业时间为0小时
var d=新日期(),
打开=新日期(),
关闭=新日期();
//静态设置打开的UTC日期
开放式设置(16);//开放时间为美国中部标准时间上午11:00,即协调世界时16:00
打开。设置分钟数(0);
open.setUTCSeconds(0);
打开。设置单位毫秒(0);
//静态设置UTC关闭日期
closed.setUTCDate(d.getUTCDate()+1);//UTC时间旋转回0,因此我们添加了一天
闭式。设置为(0);//截止时间为CST下午7:00,即UTC时间00:00(因此我们需要增加一天)
关闭。设置分钟数(0);
关闭。设置秒(0);
关闭。设置单位毫秒(0);
//调试
控制台日志(“用户日期:+d”);
日志(“在用户时区中存储打开时间:“+open”);
日志(“在用户时区中存储关闭时间:“+closed”);
console.log(d>打开);//用户的时间大于打开时间
控制台日志(d<关闭);//用户的时间是否少于关闭时间(您不必回家…)
//商店开门测试?
如果(d>打开和d<关闭){
setOpenStatus(true);
}
否则{
setOpenStatus(false);
}
函数setOpenStatus(isOpen){
$(“#打开”)。切换(等参);
$('#closed')。切换(!isOpen);
}

注意:要完全补偿世界各地的各种夏令时变化确实很困难,但这在大多数情况下都有效。以下是如何补偿使用中央标准时间作为服务器时区的其他时区:

javascript/jQuery:

// Translate your hours to UTC, example here is using Central Standard Time (-0500 UTC)
// Opening hour in UTC is 16, Closing hour is 0 the next day
var d = new Date(), 
    open = new Date(), 
    closed = new Date();

// Statically set UTC date for open
open.setUTCHours(16); // Open time at 11:00 am CST which is 16:00 UTC
open.setUTCMinutes(0);
open.setUTCSeconds(0);
open.setUTCMilliseconds(0);

// Statically Set UTC date for closing
closed.setUTCDate(d.getUTCDate()+1); // UTC time rotates back to 0 so we add a day
closed.setUTCHours(0); // Closing time at 7:00 pm CST which is 00:00 UTC (so we need to add a day)
closed.setUTCMinutes(0);
closed.setUTCSeconds(0);
closed.setUTCMilliseconds(0);

// Debugging
console.log("user's date:" + d);
console.log("store open time in user's timezone:" + open);
console.log("store close time in user's timezone:" + closed);
console.log(d > open); // user's time is greater than opening time
console.log(d < closed); // is user's time less than closing time (you don't have to go home...)

// Test for store open?
if (d > open && d < closed) {
    setOpenStatus(true);
}
else {
    setOpenStatus(false);
}

function setOpenStatus(isOpen) {
    $('#open').toggle(isOpen);
    $('#closed').toggle(!isOpen);
}
//将小时转换为UTC,这里的示例是使用中央标准时间(-0500 UTC)
//UTC的营业时间为16小时,第二天的营业时间为0小时
var d=新日期(),
打开=新日期(),
关闭=新日期();
//静态设置打开的UTC日期
开放式设置(16);//开放时间为美国中部标准时间上午11:00,即协调世界时16:00
打开。设置分钟数(0);
open.setUTCSeconds(0);
打开。设置单位毫秒(0);
//静态设置UTC关闭日期
closed.setUTCDate(d.getUTCDate()+1);//UTC时间旋转回0,因此我们添加了一天
闭式。设置为(0);//截止时间为CST下午7:00,即UTC时间00:00(因此我们需要增加一天)
关闭。设置分钟数(0);
关闭。设置秒(0);
关闭。设置单位毫秒(0);
//调试
控制台日志(“用户日期:+d”);
日志(“在用户时区中存储打开时间:“+open”);
日志(“在用户时区中存储关闭时间:“+closed”);
console.log(d>打开);//用户的时间大于打开时间
控制台日志(d<关闭);//用户的时间是否少于关闭时间(您不必回家…)
//商店开门测试?
如果(d>打开和d<关闭){
setOpenStatus(true);
}
否则{
setOpenStatus(false);
}
函数setOpenStatus(isOpen){
$(“#打开”)。切换(等参);
$('#closed')。切换(!isOpen);
}

注意:要完全补偿世界各地的各种夏令时变化确实很困难,但这在大多数情况下都有效

正如许多人指出的那样,您在客户机上所做的任何事情都将基于客户机时间,而不是您的实际业务时间


为什么不在页面上放置一个图像,不必担心更改页面上的任何内容,只需在业务打开或关闭时更改服务器上的图像?

正如许多人所指出的,您在客户端计算机上执行的任何操作都将基于客户端时间,而不是您的实际业务时间


你为什么不在页面上放一张图片,不用担心页面上的任何变化,当你的业务打开或关闭时,只需更改服务器上的图像?

如果服务器和客户机与业务位于同一时区,这不是真的有用且正确吗?@RwL:显然,你会将业务打开时间w.r.t.存储在给定的时区。是的,我可以看到,但我在想(因为我在美国)如果你这么做了,在夏令时你还可以休息一个小时,不是吗?我不太了解UTC时间(现在,我去维基百科了),所以我不知道在发布的解决方案中如何解释UTC时间。只有当服务器和客户机与企业位于同一时区时,这才是真正有用和正确的吗?@RwL:显然,你会将企业开业时间w.r.t.存储在给定的时区。是的,我可以看到,但是我在想(因为我在美国),如果你这样做了,你在夏令时还会休息一个小时,不是吗?我不太了解UTC时间(现在,我去维基百科了),所以我不知道在发布的解决方案中如何解释UTC时间。当客户和业务处于不同的时区时,中断,并且您的条件不可能是真的。你的意思可能是
| |
,而不是<