Last active
January 7, 2020 10:42
-
-
Save iqbalrony/9db949fe90f5b03578ebf791e9494180 to your computer and use it in GitHub Desktop.
Get User Time or Local Time or Client's Device Time By Javascript and PHP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
/** | |
* The First way to get local time. | |
*/ | |
//var timeZone = new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1]; return 'GMT+0600 (Bangladesh Standard Time)' | |
var pattern = /GMT(.*)\d/; | |
var GMT = pattern.exec(new Date().toString())[0]; | |
document.cookie = "GMT=" + GMT; | |
/** | |
* The Second way to get local time. | |
*/ | |
var TimeZones = [ | |
'Europe/Andorra', | |
'Asia/Dubai', | |
'Asia/Kabul', | |
'Europe/Tirane', | |
'Asia/Yerevan', | |
'Antarctica/Casey', | |
'Antarctica/Davis', | |
'Antarctica/DumontDUrville', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068 | |
'Antarctica/Mawson', | |
'Antarctica/Palmer', | |
'Antarctica/Rothera', | |
'Antarctica/Syowa', | |
'Antarctica/Troll', | |
'Antarctica/Vostok', | |
'America/Argentina/Buenos_Aires', | |
'America/Argentina/Cordoba', | |
'America/Argentina/Salta', | |
'America/Argentina/Jujuy', | |
'America/Argentina/Tucuman', | |
'America/Argentina/Catamarca', | |
'America/Argentina/La_Rioja', | |
'America/Argentina/San_Juan', | |
'America/Argentina/Mendoza', | |
'America/Argentina/San_Luis', | |
'America/Argentina/Rio_Gallegos', | |
'America/Argentina/Ushuaia', | |
'Pacific/Pago_Pago', | |
'Europe/Vienna', | |
'Australia/Lord_Howe', | |
'Antarctica/Macquarie', | |
'Australia/Hobart', | |
'Australia/Currie', | |
'Australia/Melbourne', | |
'Australia/Sydney', | |
'Australia/Broken_Hill', | |
'Australia/Brisbane', | |
'Australia/Lindeman', | |
'Australia/Adelaide', | |
'Australia/Darwin', | |
'Australia/Perth', | |
'Australia/Eucla', | |
'Asia/Baku', | |
'America/Barbados', | |
'Asia/Dhaka', | |
'Europe/Brussels', | |
'Europe/Sofia', | |
'Atlantic/Bermuda', | |
'Asia/Brunei', | |
'America/La_Paz', | |
'America/Noronha', | |
'America/Belem', | |
'America/Fortaleza', | |
'America/Recife', | |
'America/Araguaina', | |
'America/Maceio', | |
'America/Bahia', | |
'America/Sao_Paulo', | |
'America/Campo_Grande', | |
'America/Cuiaba', | |
'America/Santarem', | |
'America/Porto_Velho', | |
'America/Boa_Vista', | |
'America/Manaus', | |
'America/Eirunepe', | |
'America/Rio_Branco', | |
'America/Nassau', | |
'Asia/Thimphu', | |
'Europe/Minsk', | |
'America/Belize', | |
'America/St_Johns', | |
'America/Halifax', | |
'America/Glace_Bay', | |
'America/Moncton', | |
'America/Goose_Bay', | |
'America/Blanc-Sablon', | |
'America/Toronto', | |
'America/Nipigon', | |
'America/Thunder_Bay', | |
'America/Iqaluit', | |
'America/Pangnirtung', | |
'America/Atikokan', | |
'America/Winnipeg', | |
'America/Rainy_River', | |
'America/Resolute', | |
'America/Rankin_Inlet', | |
'America/Regina', | |
'America/Swift_Current', | |
'America/Edmonton', | |
'America/Cambridge_Bay', | |
'America/Yellowknife', | |
'America/Inuvik', | |
'America/Creston', | |
'America/Dawson_Creek', | |
'America/Fort_Nelson', | |
'America/Vancouver', | |
'America/Whitehorse', | |
'America/Dawson', | |
'Indian/Cocos', | |
'Europe/Zurich', | |
'Africa/Abidjan', | |
'Pacific/Rarotonga', | |
'America/Santiago', | |
'America/Punta_Arenas', | |
'Pacific/Easter', | |
'Asia/Shanghai', | |
'Asia/Urumqi', | |
'America/Bogota', | |
'America/Costa_Rica', | |
'America/Havana', | |
'Atlantic/Cape_Verde', | |
'America/Curacao', | |
'Indian/Christmas', | |
'Asia/Nicosia', | |
'Asia/Famagusta', | |
'Europe/Prague', | |
'Europe/Berlin', | |
'Europe/Copenhagen', | |
'America/Santo_Domingo', | |
'Africa/Algiers', | |
'America/Guayaquil', | |
'Pacific/Galapagos', | |
'Europe/Tallinn', | |
'Africa/Cairo', | |
'Africa/El_Aaiun', | |
'Europe/Madrid', | |
'Africa/Ceuta', | |
'Atlantic/Canary', | |
'Europe/Helsinki', | |
'Pacific/Fiji', | |
'Atlantic/Stanley', | |
'Pacific/Chuuk', | |
'Pacific/Pohnpei', | |
'Pacific/Kosrae', | |
'Atlantic/Faroe', | |
'Europe/Paris', | |
'Europe/London', | |
'Asia/Tbilisi', | |
'America/Cayenne', | |
'Africa/Accra', | |
'Europe/Gibraltar', | |
'America/Godthab', | |
'America/Danmarkshavn', | |
'America/Scoresbysund', | |
'America/Thule', | |
'Europe/Athens', | |
'Atlantic/South_Georgia', | |
'America/Guatemala', | |
'Pacific/Guam', | |
'Africa/Bissau', | |
'America/Guyana', | |
'Asia/Hong_Kong', | |
'America/Tegucigalpa', | |
'America/Port-au-Prince', | |
'Europe/Budapest', | |
'Asia/Jakarta', | |
'Asia/Pontianak', | |
'Asia/Makassar', | |
'Asia/Jayapura', | |
'Europe/Dublin', | |
'Asia/Jerusalem', | |
'Asia/Kolkata', | |
'Indian/Chagos', | |
'Asia/Baghdad', | |
'Asia/Tehran', | |
'Atlantic/Reykjavik', | |
'Europe/Rome', | |
'America/Jamaica', | |
'Asia/Amman', | |
'Asia/Tokyo', | |
'Africa/Nairobi', | |
'Asia/Bishkek', | |
'Pacific/Tarawa', | |
'Pacific/Enderbury', | |
'Pacific/Kiritimati', | |
'Asia/Pyongyang', | |
'Asia/Seoul', | |
'Asia/Almaty', | |
'Asia/Qyzylorda', | |
'Asia/Qostanay', // https://bugs.chromium.org/p/chromium/issues/detail?id=928068 | |
'Asia/Aqtobe', | |
'Asia/Aqtau', | |
'Asia/Atyrau', | |
'Asia/Oral', | |
'Asia/Beirut', | |
'Asia/Colombo', | |
'Africa/Monrovia', | |
'Europe/Vilnius', | |
'Europe/Luxembourg', | |
'Europe/Riga', | |
'Africa/Tripoli', | |
'Africa/Casablanca', | |
'Europe/Monaco', | |
'Europe/Chisinau', | |
'Pacific/Majuro', | |
'Pacific/Kwajalein', | |
'Asia/Yangon', | |
'Asia/Ulaanbaatar', | |
'Asia/Hovd', | |
'Asia/Choibalsan', | |
'Asia/Macau', | |
'America/Martinique', | |
'Europe/Malta', | |
'Indian/Mauritius', | |
'Indian/Maldives', | |
'America/Mexico_City', | |
'America/Cancun', | |
'America/Merida', | |
'America/Monterrey', | |
'America/Matamoros', | |
'America/Mazatlan', | |
'America/Chihuahua', | |
'America/Ojinaga', | |
'America/Hermosillo', | |
'America/Tijuana', | |
'America/Bahia_Banderas', | |
'Asia/Kuala_Lumpur', | |
'Asia/Kuching', | |
'Africa/Maputo', | |
'Africa/Windhoek', | |
'Pacific/Noumea', | |
'Pacific/Norfolk', | |
'Africa/Lagos', | |
'America/Managua', | |
'Europe/Amsterdam', | |
'Europe/Oslo', | |
'Asia/Kathmandu', | |
'Pacific/Nauru', | |
'Pacific/Niue', | |
'Pacific/Auckland', | |
'Pacific/Chatham', | |
'America/Panama', | |
'America/Lima', | |
'Pacific/Tahiti', | |
'Pacific/Marquesas', | |
'Pacific/Gambier', | |
'Pacific/Port_Moresby', | |
'Pacific/Bougainville', | |
'Asia/Manila', | |
'Asia/Karachi', | |
'Europe/Warsaw', | |
'America/Miquelon', | |
'Pacific/Pitcairn', | |
'America/Puerto_Rico', | |
'Asia/Gaza', | |
'Asia/Hebron', | |
'Europe/Lisbon', | |
'Atlantic/Madeira', | |
'Atlantic/Azores', | |
'Pacific/Palau', | |
'America/Asuncion', | |
'Asia/Qatar', | |
'Indian/Reunion', | |
'Europe/Bucharest', | |
'Europe/Belgrade', | |
'Europe/Kaliningrad', | |
'Europe/Moscow', | |
'Europe/Simferopol', | |
'Europe/Kirov', | |
'Europe/Astrakhan', | |
'Europe/Volgograd', | |
'Europe/Saratov', | |
'Europe/Ulyanovsk', | |
'Europe/Samara', | |
'Asia/Yekaterinburg', | |
'Asia/Omsk', | |
'Asia/Novosibirsk', | |
'Asia/Barnaul', | |
'Asia/Tomsk', | |
'Asia/Novokuznetsk', | |
'Asia/Krasnoyarsk', | |
'Asia/Irkutsk', | |
'Asia/Chita', | |
'Asia/Yakutsk', | |
'Asia/Khandyga', | |
'Asia/Vladivostok', | |
'Asia/Ust-Nera', | |
'Asia/Magadan', | |
'Asia/Sakhalin', | |
'Asia/Srednekolymsk', | |
'Asia/Kamchatka', | |
'Asia/Anadyr', | |
'Asia/Riyadh', | |
'Pacific/Guadalcanal', | |
'Indian/Mahe', | |
'Africa/Khartoum', | |
'Europe/Stockholm', | |
'Asia/Singapore', | |
'America/Paramaribo', | |
'Africa/Juba', | |
'Africa/Sao_Tome', | |
'America/El_Salvador', | |
'Asia/Damascus', | |
'America/Grand_Turk', | |
'Africa/Ndjamena', | |
'Indian/Kerguelen', | |
'Asia/Bangkok', | |
'Asia/Dushanbe', | |
'Pacific/Fakaofo', | |
'Asia/Dili', | |
'Asia/Ashgabat', | |
'Africa/Tunis', | |
'Pacific/Tongatapu', | |
'Europe/Istanbul', | |
'America/Port_of_Spain', | |
'Pacific/Funafuti', | |
'Asia/Taipei', | |
'Europe/Kiev', | |
'Europe/Uzhgorod', | |
'Europe/Zaporozhye', | |
'Pacific/Wake', | |
'America/New_York', | |
'America/Detroit', | |
'America/Kentucky/Louisville', | |
'America/Kentucky/Monticello', | |
'America/Indiana/Indianapolis', | |
'America/Indiana/Vincennes', | |
'America/Indiana/Winamac', | |
'America/Indiana/Marengo', | |
'America/Indiana/Petersburg', | |
'America/Indiana/Vevay', | |
'America/Chicago', | |
'America/Indiana/Tell_City', | |
'America/Indiana/Knox', | |
'America/Menominee', | |
'America/North_Dakota/Center', | |
'America/North_Dakota/New_Salem', | |
'America/North_Dakota/Beulah', | |
'America/Denver', | |
'America/Boise', | |
'America/Phoenix', | |
'America/Los_Angeles', | |
'America/Anchorage', | |
'America/Juneau', | |
'America/Sitka', | |
'America/Metlakatla', | |
'America/Yakutat', | |
'America/Nome', | |
'America/Adak', | |
'Pacific/Honolulu', | |
'America/Montevideo', | |
'Asia/Samarkand', | |
'Asia/Tashkent', | |
'America/Caracas', | |
'Asia/Ho_Chi_Minh', | |
'Pacific/Efate', | |
'Pacific/Wallis', | |
'Pacific/Apia', | |
'Africa/Johannesburg' | |
]; | |
var date = new Date; | |
var LocalTimeZone = ''; | |
TimeZones.forEach((zone)=> { | |
var TimeZoneCheck = date.toLocaleString("en-US", {timeZone: zone}); | |
if( date.toLocaleString() === TimeZoneCheck ){ | |
LocalTimeZone = zone; | |
} | |
//console.log(zone, TimeZoneCheck); | |
}); | |
document.cookie = "TimeZone="+LocalTimeZone; | |
</script> | |
<?php | |
/** | |
* The First way to get local time. | |
*/ | |
//zone info -> UCT | |
$timezone = 'GMT+0000'; | |
if(isset($_COOKIE['GMT'])){ | |
$timezone = str_replace(' ','+',$_COOKIE['GMT']); | |
} | |
//$now_date = new \DateTime('now',new \DateTimeZone('GMT+0600 (Bangladesh Standard Time)')); | |
$now_date = new \DateTime('now',new \DateTimeZone($timezone)); | |
$now_date = $now_date->format('Y-m-d h:i:s A'); | |
var_dump($now_date) | |
/** | |
* The Second way to get local time. | |
*/ | |
$local_time_zone = isset($_COOKIE['TimeZone']) && !empty($_COOKIE['TimeZone'])? $_COOKIE['TimeZone']: date_default_timezone_get(); | |
$now_date = new \DateTime('now',new \DateTimeZone($local_time_zone)); | |
$now_date = $now_date->format('Y-m-d h:i:s A'); | |
var_dump($now_date) | |
//help link | |
//https://gist.github.com/rxaviers/8481876 | |
//https://stackoverflow.com/questions/38399465/how-to-get-list-of-all-timezones-in-javascript | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment