当用户根据他/她的时区使用'input type = date name ='date''& &'input type = time name =“time”'标记输入日期和时间时,将当地日期时间转换为UTC日期时间
例如: - 如果来自印度(亚洲/加尔各答)时区的用户输入日期:2014年1月22日,时间:下午5:30,我需要将其转换为UTC时间戳以将其存储到数据库,为了更好地实现该
我用下面的代码: -
$year=substr($date,0,4);
$month=substr($date,5,2);
$day=substr($date,8);
$hour=substr($time,0,2);
$minute=substr($time,3);
$clientzone=mysql_result(mysql_query("select timezone from c_users_extra where c_id='{$_SESSION['clientid']}'"),0,0); //Fetches the timezone of user
date_default_timezone_set($clientzone);//Setting default timezone to client timezone
$datetime = new DateTime("$year-$month-$day $hour:$minute:00");
$la_time = new DateTimeZone('UTC');
$datetime->setTimezone($la_time);
$values=$datetime->format('Y-m-d H:i:s');
$year=substr($values,0,4);
$month=substr($values,5,2);
$hour=substr($values,11,2);
$minutes=substr($values,14,2);
$seconds=substr($values,17,2);
$timestamp=mktime($hour,$minutes,$seconds,$month,$day,$year);//creating new timestamp from coverted
print_r(getdate($timestamp));//Result : Array ([seconds] => 0 [minutes] => 30 [hours] => 6 [mday] => 22 [wday] => 3 [mon] => 1 [year] => 2014 [yday] => 21 [weekday] => Wednesday [month] => January [0] => 1390372200)
//Expected Result : Array ([seconds] => 0 [minutes] => 0 [hours] => 12 [mday] => 22 [wday] => 3 [mon] => 1 [year] => 2014 [yday] => 21 [weekday] => Wednesday [month] => January [0] => 1390372200)
为什么我得到这个wron g时间戳?
对不起,但这是一个巨大的矫枉过正,为什么使用所有'substr's?当你可以直接得到这些值 –
[offtopic]当我通过'substr'在PHP中看到从日期开始获得年/月/日时,我感觉自己很年轻... [/ offtopic]在你的问题中添加想要的结果 –
To从日期和时间输入标签中检索确切的值.. –