Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
Php 基于GMT转换日期和时间_Php_Mysql_Datetime - Fatal编程技术网

Php 基于GMT转换日期和时间

Php 基于GMT转换日期和时间,php,mysql,datetime,Php,Mysql,Datetime,我需要使用GMT时间转换日期和时间的帮助。目前我正在使用Convertdatetime使用时区,但我需要仅使用GMT根据从下面下拉列表中选择的GMT转换日期和时间,并且now()函数用于将日期和时间存储到(服务器时间) 例如(2012/08/11 18:45:00) 阿富汗 至2012年8月11日星期六下午5:43 安道尔 下午3:16 2012年8月11日,星期六 <option value="Afghanistan">(GMT+4:30) Afghanistan</opti

我需要使用GMT时间转换日期和时间的帮助。目前我正在使用
Convertdatetime
使用时区,但我需要仅使用GMT根据从下面下拉列表中选择的GMT转换日期和时间,并且
now()
函数用于将日期和时间存储到(服务器时间)

例如(2012/08/11 18:45:00) 阿富汗 至2012年8月11日星期六下午5:43

安道尔 下午3:16 2012年8月11日,星期六

<option value="Afghanistan">(GMT+4:30) Afghanistan</option>
<option value="Andorra">(GMT +1:00) Andorra</option>
<option value="United Arab Emirates">(GMT +04:00) United Arab Emirates</option>
<option value="Antigua and Barbuda">(GMT +04:00) Antigua and Barbuda</option>


function Convertdatetime($gmttime,$timezoneRequired)
{
    $system_timezone = date_default_timezone_get();

    $local_timezone = $timezoneRequired;
    date_default_timezone_set($local_timezone);
    $local = date("Y-m-d h:i:s A");

    date_default_timezone_set("GMT");
    $gmt = date("Y-m-d h:i:s A");

    date_default_timezone_set($system_timezone);
    $diff = (strtotime($gmt) - strtotime($local));

    $date = new DateTime($gmttime);
    $date->modify("+$diff seconds");
    $timestamp = $date->format("m-d-Y H:i:s");
    return $timestamp;
}
ConvertLocalTimezoneToGMT('2012-08-11 17:24:00.000','Asia/Calcutta');
(格林尼治时间+4:30)阿富汗
(格林尼治标准时间+1:00)安道尔
(格林尼治时间+04:00)阿拉伯联合酋长国
(格林尼治标准时间+04:00)安提瓜和巴布达
函数Convertdatetime($gmttime,$timezoneRequired)
{
$system\u timezone=date\u default\u timezone\u get();
$local_timezone=$timezoneRequired;
日期\默认\时区\设置($local\时区);
$local=日期(“Y-m-d h:i:s A”);
日期默认时区设置(“GMT”);
$gmt=日期(“Y-m-d h:i:s A”);
日期\默认\时区\设置($system\时区);
$diff=(strotime($gmt)-strotime($local));
$date=新的日期时间($gmttime);
$date->modify(“+$diff seconds”);
$timestamp=$date->格式(“m-d-Y H:i:s”);
返回$timestamp;
}
ConvertLocalTimezoneToGMT('2012-08-11 17:24:00.000','Asia/Calcutta');
输出:11-08-2012 11:54:00 | | GMT=IST-5.5


以下代码可以为您提供不同时区的秒差:

$timezone = new DateTimeZone("Asia/Karachi");
$offset = $timezone->getOffset(new DateTime("now"));
Asia/Karachi
替换为用户选择的任何内容,而不是简单地将这些秒添加到时间中

DateTimeZone::getOffset-返回GMT的时区偏移量


以下代码可以为您提供不同时区的秒差:

$timezone = new DateTimeZone("Asia/Karachi");
$offset = $timezone->getOffset(new DateTime("now"));
Asia/Karachi
替换为用户选择的任何内容,而不是简单地将这些秒添加到时间中

DateTimeZone::getOffset-返回GMT的时区偏移量


要更改时区,只需使用设置器:


然后您可以根据需要对其进行格式化。

要更改时区,您只需使用setter:


然后,您可以根据需要对其进行格式化。

@Muhammed Ahmad Zafer:谢谢您的回复,但我已经从下拉列表中获得了gmt值,基于gmt值,我需要将其转换为日期和时间country@Muhammed艾哈迈德·扎弗:谢谢你的回复,但我已经从下拉列表中得到了gmt值,根据gmt值,我需要转换为国家/地区的日期和时间