获取两个时区在给定时间内的时区偏差
我想知道是否有一种方法可以在给定持续时间之间在两个时区之间获得时区偏移. getTimezoneOffset(startDate,endDate,timezone1,timezone2){ ...missing magic to go here... } 应返回对给定持续时间有效的时区偏移.但是,如果偏移更改,则应返回其有效的日期范围. 所以我正在看这样的东西: getTimezoneOFfset("march 9 12 am", "march 15 12 am", "UTC", "US/NEW_YORK") 返回值类似于此 timezoneoffset[0]["range"]=[march 9 12am to march 11 2 am] timezoneoffset[0]["offset"]=5 timezoneoffset[1]["range"]=[march 9 2 am to march 15 12 am] timezoneoffset[
0 2023-05-30
编程技术问答社区
php中的DateTime构造函数
我已经在PHP的 dateTime class上进行了一些实验.在文档中,他们建议的语法用于创建DateTime类的对象. 面向对象样式: public DateTime::__construct() ( [ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) 程序样式: DateTime date_create ( [ string $time = "now" [, DateTimeZone $timezone = NULL ]] ) 返回新的DateTime对象. 在这里,他们指定为强制性的第一个参数,作为日期和时间格式部分.否则我们必须在此处通过NULL在使用$ TimeZone参数时获得当前时间. ,但我的问题是我提供以下代码: date_default_timezone_set('America/Los_Angeles'); $d_ob = new DateTime('
0 2023-05-30
编程技术问答社区
设置PostgreSQL实例的时区
我正在使用最新的Zend框架与PostgreSQL数据库进行通信.我的一些DB表具有now()字段,可添加当前时间戳.但是,对于不同的请求,数据库连接的时区可能不同. 是否可以以每连接设置PostgreSQL数据库的时区?我知道您可以将驱动程序选项传递给zend_db的实例,所以我认为这是一个技巧. 解决方案 首先,考虑数据类型timestamptz(timestamp with time zone),而不是timestamp(timestamp without time zone).那么用户时区无关紧要. now()返回timestamptz,您的问题源于将其胁迫到timestamp.请参阅: /a> "但是我需要类型timestamp!" 如果您的连接发生在数据库角色(登录)中,可以将其绑定到时区 ,则PostgreSQL提供了一个简单的解决方案: ALTER ROLE my_role SET TIMEZONE = '+1'; 以此角色启动的
0 2023-05-30
编程技术问答社区
你是如何处理时区问题的?
对于调度系统,在来自来自多个源的移动源,Web,Client应用程序中的中央服务器数据库中保存客户端/事件的时区的最佳方法是什么? 您如何存储日期?警报,提醒等... 您如何处理DST设置? 如果客户到另一个位置旅行,您如何处理活动? 我需要解决方案来使用标签中的所有数据库. 解决方案 这些是我倾向于使用的策略的关键点. 每个日期都与系统内部进行UTC. 用户在其本地时区中显示了日期. 我们允许用户覆盖他们正在使用的时区,以防万一,他们希望保持时区一致. 使时区容易可见.用时间或作为列标题的一部分显示. 其他解决方案 UTC中的所有内容,以及偏移的另一列. 其他解决方案 将日期存储为UTC时间戳 - 向用户显示数据时转换为本地时间.
0 2023-05-30
编程技术问答社区
"依靠系统的时区设置是不安全的"
我有一个一周前完成的脚本,没有任何问题或错误.今天,我再次测试了它,并收到了这些消息: 严格的标准:date()[function.date]:依靠不安全 系统的时区设置.请使用date.timezone设置, TZ环境变量或date_default_timezone_set() 功能.如果您使用了任何这些方法,并且您仍然是 获取此警告,您很可能拼错了时区 标识符.我们选择了" 1.0/dst"的"欧洲/伦敦" C:\ users \ xx \ vertrigoserv \ www \ login \ phpmailer \ class.phpmailer.php on 第1925号线 严格的标准:date()[function.date]:依靠不安全 系统的时区设置.请使用date.timezone设置, TZ环境变量或date_default_timezone_set() 功能.如果您使用了任何这些方法,并且您仍然是 获取此警告,您很可能拼错了时区 标识符.我们选择了"
0 2023-05-30
编程技术问答社区
PHP, Codeigniter: 如何在Web应用中根据用户的时区/地点来设置日期/时间?
我刚刚意识到,如果我将特定记录添加到我的MySQL数据库中 - 它将具有服务器的日期/时间,而不是特定用户的日期/时间,这意味着我的搜索功能是毫无用处的!因为他们将无法搜索何时将其添加到时区中,而不是在服务器时添加时. 在CodeIgniter中有一种方式可以在全球设置特定于用户位置的时间和日期(也许使用其IP),并且每次我调用用户使用TimeZone的时间()或Time(). 我实际要求的是 可能如何使我的申请 取决于每个用户时区? 也许最好将每个用户的时区存储在其个人资料中,并有一个标准时间(服务器时间),然后将时间转换为每个用户? 谢谢所有 解决方案 我认为最简单的方法是定义一个内部数据存储的时区(您的服务器的时区或UTC),并根据用户的时区转换时间. 我不知道Codeigniter,所以我不能指向您正确的功能.一个著名的库是Zend_date:但是,一旦您知道用户的时区,就不难将自己的函数汇总到输出日期和/或时间时添加/降低偏移量. 可
0 2023-05-30
编程技术问答社区
主要站点如何检测时区?
Facebook,myspace,msn,craigslist;所有检测时区并正确显示时间和日期,而无需提交表格或重新加载页面. 他们如何做?我有一个很大的网站,有人发布文章,这些文章需要显示正确的时间(根据时区的不同,上传到下午3点或下午6点). 预加载器? JavaScript?加载页面并重新加载它?我的网站目前让该人进入该网站,然后在第一次输入时,它通过JavaScript重新加载了该页面的时区信息.但是,这是一件非常烦人的事情,正在寻找另一种选择.我知道加载后,我可以发送一个AJAX请求,然后将其更新整个网站的所有内容,并使用正确的时区为用户,但是如果我必须单击,或者重新加载,则问我是否要再次发送信息这也很糟糕.那么他们怎么做? 我正在与Facebook一起玩,更改了本地机器上的位置,它似乎每5分钟左右更新时区. 我是PHP,基于Zend-Framework. 解决方案 没有"时区"请求标题或类似的内容,因此,您不能使用php 但是,使用Ja
0 2023-05-30
编程技术问答社区
为碳纤维日期设置时区格式
我试图在Carbon对象中设置一个日期的时区.它在本地工作正常,但是在我的生产盒上,它一直给我Bad timezone错误. 我尝试过: $date->setTimezone('7'); $date->setTimezone('+7'); $date->setTimezone('7:00'); $date->setTimezone('+7:00'); $date->setTimezone('UTC 7'); $date->setTimezone('UTC +7'); $date->setTimezone('UTC 7:00'); $date->setTimezone('UTC +7:00'); 不知道为什么它在我的生产盒上抱怨.找不到有关在此处输入的"适当"格式的文档.有人可以帮忙. fyi:本地是Windows,而产品是Ubuntu Box. 解决方案 您可以对此更改时区: $timestamp = '2014-02-06 16:34:00'; $d
0 2023-05-30
编程技术问答社区
UTC和Etc/UTC时区之间有区别吗?
在php文档中,支持时区列表,UTC,UTC列出了两次: UTC Etc/UTC 这两个之间有任何概念上的区别,还是只是同义词? 解决方案 Etc/UTC是其显示名称为UTC的时区.也就是说,它们是同一时区的长名,且缩短了其他解决方案 简短答案 no ,时区之间没有差异 UTC和Etc/UTC. . 上下文的长答案 Etc/UTC是Olson-TimeZone-Database( tz database ),也称为 iana timezones-database ,其中所有时代都符合统一的命名惯例:Area/Location. 虽然大多数时区(例如"柏林")可以归因于一个区域(例如"欧洲",导致"欧洲/柏林"),但某些时区不能归因于世界上任何地区(想想大陆或海洋) .因此,引入了特殊区域Etc( etcetera ).区域Etc主要适用于UTC等管理时区. 总结:要符合命名约定,通用协调时间(区域)在TZ数据库中命名为Etc/UTC.
0 2023-05-30
编程技术问答社区
在每个时区的上午12点运行cron工作
所以我认为每个时区之间大约有30分钟.我想在每个时间区域在上午12点(午夜)运行脚本cron.php.我该怎么做? 我正在查看此代码: TZ=UTC * 7 * * * root date | mail root TZ=CEST * 7 * * * root date | mail root TZ=PCT * 7 * * * root date | mail root 这个工作吗? 代码的意思是什么? 有更好的解决方案? 解决方案 大多数时区相隔1小时,有几个例外. 上述代码将在列出的每个时区中的上午7点运行. 最好的脚本每小时运行,然后在您自己的时区中启动一次脚本
0 2023-05-29
编程技术问答社区
设置PHP的默认时区
在我的Web应用程序中,我让用户从列表中选择他们的首选时区(其中包含 PHP支持的所有时区). 假设$_POST['timezone']是选择的时区(例如,例如 America/New_York). 我将其设置为以下代码,该代码不会产生任何错误: default_date_timezone_set($_POST['timezone']); 但是,当我重新加载页面时,它又回到了以前的原样(例如,例如 Europe/Moscow). 我是否必须在每个脚本中设置默认时区,还是函数(default_date_timezone_set)工作正常? 谢谢! 解决方案 此功能仅更改脚本执行的时区. 您可以将时区存储在会话变量中,并将时区设置在每个页面的顶部. 其他解决方案 您应该将其保存在数据库中,并在您完成任何相关时间时设置时区.它正常工作.它只应该为该脚本执行设置(一个HTTP请求). 其他解决方案 设置一个包含用户选择的时区的cookie. ///
0 2023-05-29
编程技术问答社区
php>设置默认时区
我们想将时区设置为PHP中的变量,以解释不同的时区/日光节省. 硬编码时,我们的代码正常工作: date_default_timezone_set('Australia/Brisbane'); ,但是当我们添加变量时,它会死亡.我不确定为什么. $setzone = "Australia/Brisbane"; date_default_timezone_set('".$setzone."'); 解决方案 如果您会添加报价,则变量为string $setzone = "Australia/Brisbane"; echo '".$setzone."'; 输出: ".$ string."//输出作为字符串而不是变量值 因此,将字符串传递到变量 时,您需要删除报价 date_default_timezone_set('".$setzone."'); to date_default_timezone_set($setzone);
2 2023-05-29
编程技术问答社区
timezone_name_from_abbr()未正确识别
基本上我的网站在全球范围内,我需要能够检测用户的时区并显示准确的时间.我有这个非常整洁的脚本,直到现在,它曾经完美地工作.它需要一个时区偏移,我用JavaScript获取并通过cookie. if(!empty($_COOKIE['tz']) && $_COOKIE['tz']>=-12 && $_COOKIE['tz']
0 2023-05-29
编程技术问答社区
MySQL的默认时间格式是UTC还是GMT?
嗨,我对此UTC和GMT 很困惑 我将在MySQL表中插入ex列" event_date",例如" 2010-07-01 23:50:00"(DateTime)我的客户端在前端询问一个选项,例如GMT +1 GMT +2 GMT -1 GMT -1 GMT -2 ...等如果我选择任何选项GMT +2 Event_date将根据GMT +2进行过​​滤/列表. 我不知道该如何进行,在谷歌搜索后,我找到了这个 CONVERT_TZ( `field_eventdate_value` , '+00:00', '+10:00' ) 以及它是否正常运行,我的客户给了我一个样本URL,可以像这样检查 http://wwwww.forexpros.com/economic-comonic-comonic-colosic-colonic-calendar/ 我正在使用Drupal节点 预先感谢 gobi 解决方案 CONVERT_TZ(dt,from_
0 2023-05-29
编程技术问答社区
在PHP中,我如何从偏移和乡村获得时区?
我正在进行IP查找,以确定UTC和国家/地区信息的时区偏移的"最佳猜测". 所以,例如,我有偏移-3和巴西国家. 我想在同一偏移中显示BRT,而不是随机的时区,即Art PHP中是否有一些内置方式可以设置此信息的适当时区? 如果不是,那么最简单的方法是什么? (假设我无法拨打任何外部API调用) 如果我自己做数据库表,我该如何确保它保持最新状态? 谢谢! 解决方案 您不必滚动自己的数据库,以下是其他解决方案 您无法从偏移量甚至偏移加上国家/地区解决一个时区.请参阅时区标签wiki wiki 的TimeZone != Offset部分.偏移在许多时候发生了变化,它们不可避免地会再次改变. 您需要更多信息,例如纬度/经度.请参阅这个社区Wiki . 如果您可以向用户询问其时区,请这样做.那是最好的方法.我最喜欢的UI是一个基于JavaScript地图的时区选择器,其他解决方案 此PHP功能还给所有现有时区的数组,包括偏移,而不是您要
0 2023-05-29
编程技术问答社区
jQuery FullCalendar的时区同步
我正在使用jQuery Fullcalendar插件(http://arshaw.com/fullcalendar).我只是在"全天"活动中使用它.当用户创建事件时,我将其通过PHP作为日期(2012-01-12)存储在数据库中.通过AJAX将事件列表发送到FullCalendar时,我将日期转换为UNIX时间. 我预见到的问题是,说服务器在美国有一个美国时区,并且客户在欧洲.服务器发送2012-01-12 00:00(美国时间)的事件,该事件将转换为UNIX时间.然后,客户可能会看到2012-01-12 08:00(8小时后)的事件. 我如何确保如果事件发生在午夜,那么它到处都是午夜 - 无需调整任何时区.如果用户在1月12日创建全天活动,我需要世界各地的每个用户在同一日期也可以看到它. 解决方案 fullcalendar可以选择,ignoretimezone(请参阅:(*我个人认为默认值是错误的,开发人员似乎在文档中承认,因此值得明确设置.)
0 2023-05-29
编程技术问答社区
如何将东部时区转换为中央时区
我有一个时间在东部时区,但我想将其调整到中央时区.两个时区都在美国.我从来没有做过?我不知道如何转换.请帮我吗? 解决方案 这是一种可能的方法: $dt = new DateTime('2011-02-22 16:15:20', new DateTimeZone('America/New_York')); echo $dt->format('r') . PHP_EOL; $dt->setTimezone(new DateTimeZone('America/Chicago')); echo $dt->format('r') . PHP_EOL; 您可以获取以下可用时区的列表: print_r(DateTimeZone::listIdentifiers()); 其他解决方案 http://www.builderau.com.au/program/php/php/php/soa/get-the-cor-pet-the-correct-the-correct-pe
0 2023-05-28
编程技术问答社区
PHP从不同时区的服务器获取英国当地时间
我有一个我不知道时区域的Web服务器. 现在是英国上午10:49,但是当我运行以下操作时: $sTime = gmdate("d-m-Y H:i:s"); print 'The time is: ' . $sTime; 服务器返回以下时间. The time is: 24-06-2012 09:49:57 现在我不想在时间上"添加"一个小时,因为当时间向前移动1小时或向后1小时时,时间仍然需要正确. 有没有办法获得伦敦的实际时间? fyi-我也尝试了以下操作,没有任何运气: date_timezone_set('Europe/London'); $sTime = gmdate("d-m-Y H:i:s"); print 'The time is: ' . $sTime; 非常感谢. 解决方案 在这里不要使用gmdate(" d-m-y H:i:s"),因为它返回了GMT.而是使用日期(" d-m-y H:i:s"). 尝试这
2 2023-05-28
编程技术问答社区
在PHP中使用系统的时区设置
因此,我有一个用PHP编写的Web应用程序,该应用程序将在世界各地的不同Ubuntu服务器上运行. 某些服务器将配置为在本地时间运行,有些将在UTC上运行,这取决于客户. 虽然我可以编辑php.ini文件并设置日期. 如何获得PHP使用系统(TZDATA)中已经定义的时区? 或,换句话说:如何从PHP中的系统中提取(长)时区名称以在date_default_timezone_set()中使用()? 解决方案 如果您有时区集,则可以使用: http://php.net/manual/en/function.date-default timezone-get.php 或/function.timezone-name-from-abbr.php 其他解决方案 在安德烈·诺普(Andrey Knupp)的回答中,我能够解决这个问题. echo "Time: " . date("Y-m-d H:i:s") . " \n"; $shortName =
2 2023-05-28
编程技术问答社区
PHP调整日期的时区
我的网站上的以下输出为-1小时,我只想快速修复以相应的调整,但我不确定正确的语法... datetime)); ?> 解决方案 使用这是时机列表. 其他解决方案 设置默认时区 $timezone = 'America/Los_Angeles'; $stored_time = '2011-01-30 18:23:49'; date_default_timezone_set($timezone); $timestamp = strtotime($stored_time); $local_time = $timestamp + date('Z'); $local_date = date('Y-m-d H:i:s', $local_time); echo $local_date;
0 2023-05-28
编程技术问答社区