当前位置: 首页 > 知识库问答 >
问题:

强制浏览器显示特定时区的所有日期[重复]

尹承泽
2023-03-14

如何强制浏览器显示所有日期对象以使用定时。如通过欧洲/伦敦。有没有办法这样做??

更新

这里我希望所有Jquery Datepicker都按照特定的时区而不是客户机打开日期和时间。

共有1个答案

申高峯
2023-03-14

您不能“设置”时区偏移量,它是一个基于系统设置的只读属性。

只需添加客户端时区偏移量,然后添加所需的任何偏移量,就可以为任何时区偏移量生成时间和日期值(请注意,javascript date对象的时区偏移量与通常的值具有相反的意义,因此可以同时添加两个值,而不是减去一个再添加另一个)。

例如。

// Provide offsetInMintes to add to UTC to get required time,
// e.g. Nepal Standard Time is UTC +05:45 -> +345 minutes
function generateOffsetTime(offsetInMinutes) {
  function z(n){return (n<10? '0' : '') + n;}
  var d = new Date();
  d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + offsetInMinutes);
  return [z(d.getHours()),z(d.getMinutes()),z(d.getSeconds())].join(':');
}

alert('The time in Nepal is ' + generateOffsetTime(345));
Date.prototype.setOffset = function(offsetInMinutes, offsetName) {
  this._offsetInMinutes = offsetInMinutes;
  this._offsetName = offsetName;
};

Date.prototype.getOffsetFullDate = (function() {
  var months = ('January February March April May June July ' +
               'August September October November December').split(' ');
  var days = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday'.split(' ');

  return function() {
    var d = new Date(+this);
    d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + this._offsetInMinutes);
    return days[d.getDay()] + ' ' + d.getDate() + ' ' + months[d.getMonth()] + 
           ', ' + this.getFullYear();  
  }

}());

Date.prototype.getOffsetTime = (function() {
  function z(n){return (n<10? '0' : '') + n;}

  return function() {
    var d = new Date(+this);
    d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + this._offsetInMinutes);
    return z(d.getHours()) + ':' + z(d.getMinutes()) + ':' +
           z(d.getSeconds()) + ' ' + this._offsetName;  
  }  
}());

var d = new Date();
d.setOffset(345, 'NST')
console.log(d.getOffsetFullDate() + ' ' + d.getOffsetTime());

请注意,这将保留date对象的原始时间值,并在检索值时对其进行调整,以便可以更改时区以获得相同date对象的不同值,因此您可以继续:

d.setOffset(600, 'AEST');
console.log(d.getOffsetFullDate() + ' ' + d.getOffsetTime());

d.setOffset(630, 'LHI');
console.log(d.getOffsetFullDate() + ' ' + d.getOffsetTime());

但我仍然认为最好构建您自己的日期构造函数来利用内置的日期而不是扩展它。

 类似资料:
  • 问题内容: 在我的应用中有一段时间,无论用户输入了什么内容,我都必须强制显示建议列表中的所有项目。我怎样才能做到这一点? 我尝试使用过滤进行某些操作,但是对我而言,作为初学者进行过滤实在太复杂了,我尝试在没有任何运气的情况下搜索初学者教程进行过滤。也许,有一种更简单的方法可以强制显示所有建议项? 编辑:基本上我的想法是,当用户键入列表中未包含的内容时,它将显示他可以拥有的所有可用选项。 我已经找到

  • 问题内容: 我正在基于CSS3过渡构建非jQuery响应式图像滑块。 结构很简单:一个视口和内部相对定位的UL,左侧浮动LI。 在这种情况下,我面临一个问题: 用户单击“上一个”箭头。 JS在当前显示的LI节点之前附加适当的LI。 目前,UL已将CSS过渡设置为防止动画更改。此时,我将UL CSS左值减小滑块宽度(比方说:从0px到-1200px),以使视图保持原样。 现在,我将UL的过渡属性更改

  • 问题内容: 如何处理HTML页面中的TIFF文件? 我想在HTML页面中显示TIFF文件。 我尝试使用嵌入式标签,对象ID,IMG等。但是我无法在HTML页面中显示图像(TIFF)。 我在项目中没有使用Java,.NET或其他任何东西。我仅使用HTML。 更新:Safari支持TIFF图像加载。如何在其他浏览器(IE,Mozilla,Firefox等)中加载TIFF图像? 我无法安装第三方插件或控

  • 问题内容: 例如,我有一个这样的字符串日期(我是从Rails应用程序的json服务器中获取的) 我想这样显示 所以我为此使用了moment.js库 但我不知道所需的时区是否为+08:00。如果我跳过通话,结果将是错误的,因为我的浏览器所在的时区不同 即使在我的原始字符串中,我也有结尾。 所以,我的问题是如何使用纯JavaScript或moment.js库从json日期字符串中提取时区? 我能想到的

  • 我很难让谷歌字体在Chrome中工作 我正在使用Google的建议链接元素来检索字体(开发工具确认它工作正常)。 Link rel="样式表"href="http://fonts.googleapis.com/css?family=Roboto压缩:400italic" 在CSS文件中,我将所有h2、按钮、选择和输入元素的字体系列设置为“机器人浓缩” 在Google Chrome中,只有字体不显示

  • 我有一个执行上传的应用程序。我似乎无法让文件系统弹出关闭。它不会搞砸测试,它会继续在后台运行,但我想观看测试的奇怪机会有四分之一的屏幕被覆盖了。所以我想解决这个问题的方法就是强制在新选项卡中完成测试的其余部分。我不知道如何做到这一点。 这是我的上传代码: 与此问题相关:发送filepath后上传模态不会关闭