當用戶根據他/她的時區使用'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從日期和時間輸入標籤中檢索確切的值.. –