{"id":17613789,"url":"https://github.com/camroncade/timezone","last_synced_at":"2025-04-04T18:06:41.846Z","repository":{"id":18544355,"uuid":"21745468","full_name":"camroncade/timezone","owner":"camroncade","description":"Functions for helping manage timezones in Laravel. Includes \u003cselect\u003e form builder for timezones.","archived":false,"fork":false,"pushed_at":"2020-04-13T10:13:36.000Z","size":22,"stargazers_count":160,"open_issues_count":13,"forks_count":37,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-05T01:35:37.102Z","etag":null,"topics":["laravel","timezone"],"latest_commit_sha":null,"homepage":"http://www.camroncade.com/managing-timezones-with-laravel/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/camroncade.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-11T17:40:06.000Z","updated_at":"2025-02-11T21:31:14.000Z","dependencies_parsed_at":"2022-09-24T11:25:18.115Z","dependency_job_id":null,"html_url":"https://github.com/camroncade/timezone","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camroncade%2Ftimezone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camroncade%2Ftimezone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camroncade%2Ftimezone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camroncade%2Ftimezone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/camroncade","download_url":"https://codeload.github.com/camroncade/timezone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247226213,"owners_count":20904465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","timezone"],"created_at":"2024-10-22T18:14:10.716Z","updated_at":"2025-04-04T18:06:41.825Z","avatar_url":"https://github.com/camroncade.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Timezone Select Form Builder\n\nThis is a helper function that creates a select menu including timezones in human-readable format. Each underlying key is the php-friendly name for the timezone, making it easy to immediately store and use them. The array of timezones and their underlying keys were taken from the repository by [tamaspap](https://github.com/tamaspap/timezones).\n\n## Installation\n\nRecommended installation of this package is through composer. Include the following in your project's `composer.json` file:\n\n    \"require\": {\n    \t\"camroncade/timezone\": \"0.1\"\n    }\n\nNext, update Composer from the Terminal:\n\n    composer update\n\nOnce this operation completes, the final step is to add the service provider. Open `config/app.php`, and add a new item to the service providers array.\n\n    'Camroncade\\Timezone\\TimezoneServiceProvider'\n\nNow it's ready for use!\n\n## Usage\n\n### Timezone Convert Helper Functions\n\nThe package includes two helper functions that make it easy to deal with displaying and storing timezones, `convertFromUTC()` and `convertToUTC()`:\n\nEach function accepts two required parameters and a third optional parameter dealing with the format of the returned timestamp.\n\n    Timezone::convertFromUTC($timestamp, $timezone, $format);\n    Timezone::convertToUTC($timestamp, $timezone, $format);\n\nThe first parameter accepts a timestamp, the second accepts the name of the timezone that you are converting to/from. The option values associated with the timezones included in the select form builder can be plugged into here as is. Alternatively, you can use any of [PHP's supported timezones](http://php.net/manual/en/timezones.php).\n\nThe third parameter is optional, and default is set to `'Y-m-d H:i:s'`, which is how Laravel natively stores datetimes into the database (the `created_at` and `updated_at` columns).\n\n### Select Form Builder\n\nThe package also includes a helper function for the creation of the select option. This is created by calling `Timezone::selectForm()`.\n\nThe method selectForm accepts four optional parameters, `string selected`, `placeholder`, `array formAttributes`, and `array optionAttributes`. An example of it's use is shown below:\n\n    $selected = 'US/Central';\n    $placeholder = 'Select a timezone';\n    $formAttributes = array('class' =\u003e 'swegForm', 'style' =\u003e 'float:left;', 'name' =\u003e 'timezone');\n    $optionAttributes = array('customValue' =\u003e 'true');\n\n    Timezone::selectForm($selected, $placeholder, $formAttributes, $optionAttributes);\n\nNote that the `$selected` parameter matches the string to the values on each option, not the display text. The paratmeters `$formAttributes` and `$optionAttributes` can be used for styling, roles, and generally anything you need. This is useful for applying Twitter Bootstrap styling.\n\nSimply returning `Timezone::selectForm()` will output the following:\n\n    \u003cselect\u003e\n\t\u003coption value='Pacific/Midway' \u003e(UTC-11:00) Midway Island\u003c/option\u003e\n\t\u003coption value='Pacific/Samoa' \u003e(UTC-11:00) Samoa\u003c/option\u003e\n\t\u003coption value='Pacific/Honolulu' \u003e(UTC-10:00) Hawaii\u003c/option\u003e\n\t\u003coption value='US/Alaska' \u003e(UTC-09:00) Alaska\u003c/option\u003e\n\t\u003coption value='America/Los_Angeles' \u003e(UTC-08:00) Pacific Time (US \u0026amp; Canada)\u003c/option\u003e\n\t\u003coption value='America/Tijuana' \u003e(UTC-08:00) Tijuana\u003c/option\u003e\n\t\u003coption value='US/Arizona' \u003e(UTC-07:00) Arizona\u003c/option\u003e\n\t\u003coption value='America/Chihuahua' \u003e(UTC-07:00) Chihuahua\u003c/option\u003e\n\t\u003coption value='America/Chihuahua' \u003e(UTC-07:00) La Paz\u003c/option\u003e\n\t\u003coption value='America/Mazatlan' \u003e(UTC-07:00) Mazatlan\u003c/option\u003e\n\t\u003coption value='US/Mountain' \u003e(UTC-07:00) Mountain Time (US \u0026amp; Canada)\u003c/option\u003e\n\t\u003coption value='America/Managua' \u003e(UTC-06:00) Central America\u003c/option\u003e\n\t\u003coption value='US/Central' \u003e(UTC-06:00) Central Time (US \u0026amp; Canada)\u003c/option\u003e\n\t\u003coption value='America/Mexico_City' \u003e(UTC-06:00) Guadalajara\u003c/option\u003e\n\t\u003coption value='America/Mexico_City' \u003e(UTC-06:00) Mexico City\u003c/option\u003e\n\t\u003coption value='America/Monterrey' \u003e(UTC-06:00) Monterrey\u003c/option\u003e\n\t\u003coption value='Canada/Saskatchewan' \u003e(UTC-06:00) Saskatchewan\u003c/option\u003e\n\t\u003coption value='America/Bogota' \u003e(UTC-05:00) Bogota\u003c/option\u003e\n\t\u003coption value='US/Eastern' \u003e(UTC-05:00) Eastern Time (US \u0026amp; Canada)\u003c/option\u003e\n\t\u003coption value='US/East-Indiana' \u003e(UTC-05:00) Indiana (East)\u003c/option\u003e\n\t\u003coption value='America/Lima' \u003e(UTC-05:00) Lima\u003c/option\u003e\n\t\u003coption value='America/Bogota' \u003e(UTC-05:00) Quito\u003c/option\u003e\n\t\u003coption value='Canada/Atlantic' \u003e(UTC-04:00) Atlantic Time (Canada)\u003c/option\u003e\n\t\u003coption value='America/Caracas' \u003e(UTC-04:30) Caracas\u003c/option\u003e\n\t\u003coption value='America/La_Paz' \u003e(UTC-04:00) La Paz\u003c/option\u003e\n\t\u003coption value='America/Santiago' \u003e(UTC-04:00) Santiago\u003c/option\u003e\n\t\u003coption value='Canada/Newfoundland' \u003e(UTC-03:30) Newfoundland\u003c/option\u003e\n\t\u003coption value='America/Sao_Paulo' \u003e(UTC-03:00) Brasilia\u003c/option\u003e\n\t\u003coption value='America/Argentina/Buenos_Aires' \u003e(UTC-03:00) Buenos Aires\u003c/option\u003e\n\t\u003coption value='America/Argentina/Buenos_Aires' \u003e(UTC-03:00) Georgetown\u003c/option\u003e\n\t\u003coption value='America/Godthab' \u003e(UTC-03:00) Greenland\u003c/option\u003e\n\t\u003coption value='America/Noronha' \u003e(UTC-02:00) Mid-Atlantic\u003c/option\u003e\n\t\u003coption value='Atlantic/Azores' \u003e(UTC-01:00) Azores\u003c/option\u003e\n\t\u003coption value='Atlantic/Cape_Verde' \u003e(UTC-01:00) Cape Verde Is.\u003c/option\u003e\n\t\u003coption value='Africa/Casablanca' \u003e(UTC+00:00) Casablanca\u003c/option\u003e\n\t\u003coption value='Europe/London' \u003e(UTC+00:00) Edinburgh\u003c/option\u003e\n\t\u003coption value='Etc/Greenwich' \u003e(UTC+00:00) Greenwich Mean Time : Dublin\u003c/option\u003e\n\t\u003coption value='Europe/Lisbon' \u003e(UTC+00:00) Lisbon\u003c/option\u003e\n\t\u003coption value='Europe/London' \u003e(UTC+00:00) London\u003c/option\u003e\n\t\u003coption value='Africa/Monrovia' \u003e(UTC+00:00) Monrovia\u003c/option\u003e\n\t\u003coption value='UTC' \u003e(UTC+00:00) UTC\u003c/option\u003e\n\t\u003coption value='Europe/Amsterdam' \u003e(UTC+01:00) Amsterdam\u003c/option\u003e\n\t\u003coption value='Europe/Belgrade' \u003e(UTC+01:00) Belgrade\u003c/option\u003e\n\t\u003coption value='Europe/Berlin' \u003e(UTC+01:00) Berlin\u003c/option\u003e\n\t\u003coption value='Europe/Berlin' \u003e(UTC+01:00) Bern\u003c/option\u003e\n\t\u003coption value='Europe/Bratislava' \u003e(UTC+01:00) Bratislava\u003c/option\u003e\n\t\u003coption value='Europe/Brussels' \u003e(UTC+01:00) Brussels\u003c/option\u003e\n\t\u003coption value='Europe/Budapest' \u003e(UTC+01:00) Budapest\u003c/option\u003e\n\t\u003coption value='Europe/Copenhagen' \u003e(UTC+01:00) Copenhagen\u003c/option\u003e\n\t\u003coption value='Europe/Ljubljana' \u003e(UTC+01:00) Ljubljana\u003c/option\u003e\n\t\u003coption value='Europe/Madrid' \u003e(UTC+01:00) Madrid\u003c/option\u003e\n\t\u003coption value='Europe/Paris' \u003e(UTC+01:00) Paris\u003c/option\u003e\n\t\u003coption value='Europe/Prague' \u003e(UTC+01:00) Prague\u003c/option\u003e\n\t\u003coption value='Europe/Rome' \u003e(UTC+01:00) Rome\u003c/option\u003e\n\t\u003coption value='Europe/Sarajevo' \u003e(UTC+01:00) Sarajevo\u003c/option\u003e\n\t\u003coption value='Europe/Skopje' \u003e(UTC+01:00) Skopje\u003c/option\u003e\n\t\u003coption value='Europe/Stockholm' \u003e(UTC+01:00) Stockholm\u003c/option\u003e\n\t\u003coption value='Europe/Vienna' \u003e(UTC+01:00) Vienna\u003c/option\u003e\n\t\u003coption value='Europe/Warsaw' \u003e(UTC+01:00) Warsaw\u003c/option\u003e\n\t\u003coption value='Africa/Lagos' \u003e(UTC+01:00) West Central Africa\u003c/option\u003e\n\t\u003coption value='Europe/Zagreb' \u003e(UTC+01:00) Zagreb\u003c/option\u003e\n\t\u003coption value='Europe/Athens' \u003e(UTC+02:00) Athens\u003c/option\u003e\n\t\u003coption value='Europe/Bucharest' \u003e(UTC+02:00) Bucharest\u003c/option\u003e\n\t\u003coption value='Africa/Cairo' \u003e(UTC+02:00) Cairo\u003c/option\u003e\n\t\u003coption value='Africa/Harare' \u003e(UTC+02:00) Harare\u003c/option\u003e\n\t\u003coption value='Europe/Helsinki' \u003e(UTC+02:00) Helsinki\u003c/option\u003e\n\t\u003coption value='Europe/Istanbul' \u003e(UTC+02:00) Istanbul\u003c/option\u003e\n\t\u003coption value='Asia/Jerusalem' \u003e(UTC+02:00) Jerusalem\u003c/option\u003e\n\t\u003coption value='Europe/Helsinki' \u003e(UTC+02:00) Kyiv\u003c/option\u003e\n\t\u003coption value='Africa/Johannesburg' \u003e(UTC+02:00) Pretoria\u003c/option\u003e\n\t\u003coption value='Europe/Riga' \u003e(UTC+02:00) Riga\u003c/option\u003e\n\t\u003coption value='Europe/Sofia' \u003e(UTC+02:00) Sofia\u003c/option\u003e\n\t\u003coption value='Europe/Tallinn' \u003e(UTC+02:00) Tallinn\u003c/option\u003e\n\t\u003coption value='Europe/Vilnius' \u003e(UTC+02:00) Vilnius\u003c/option\u003e\n\t\u003coption value='Asia/Baghdad' \u003e(UTC+03:00) Baghdad\u003c/option\u003e\n\t\u003coption value='Asia/Kuwait' \u003e(UTC+03:00) Kuwait\u003c/option\u003e\n\t\u003coption value='Europe/Minsk' \u003e(UTC+03:00) Minsk\u003c/option\u003e\n\t\u003coption value='Africa/Nairobi' \u003e(UTC+03:00) Nairobi\u003c/option\u003e\n\t\u003coption value='Asia/Riyadh' \u003e(UTC+03:00) Riyadh\u003c/option\u003e\n\t\u003coption value='Europe/Volgograd' \u003e(UTC+03:00) Volgograd\u003c/option\u003e\n\t\u003coption value='Asia/Tehran' \u003e(UTC+03:30) Tehran\u003c/option\u003e\n\t\u003coption value='Asia/Muscat' \u003e(UTC+04:00) Abu Dhabi\u003c/option\u003e\n\t\u003coption value='Asia/Baku' \u003e(UTC+04:00) Baku\u003c/option\u003e\n\t\u003coption value='Europe/Moscow' \u003e(UTC+04:00) Moscow\u003c/option\u003e\n\t\u003coption value='Asia/Muscat' \u003e(UTC+04:00) Muscat\u003c/option\u003e\n\t\u003coption value='Europe/Moscow' \u003e(UTC+04:00) St. Petersburg\u003c/option\u003e\n\t\u003coption value='Asia/Tbilisi' \u003e(UTC+04:00) Tbilisi\u003c/option\u003e\n\t\u003coption value='Asia/Yerevan' \u003e(UTC+04:00) Yerevan\u003c/option\u003e\n\t\u003coption value='Asia/Kabul' \u003e(UTC+04:30) Kabul\u003c/option\u003e\n\t\u003coption value='Asia/Karachi' \u003e(UTC+05:00) Islamabad\u003c/option\u003e\n\t\u003coption value='Asia/Karachi' \u003e(UTC+05:00) Karachi\u003c/option\u003e\n\t\u003coption value='Asia/Tashkent' \u003e(UTC+05:00) Tashkent\u003c/option\u003e\n\t\u003coption value='Asia/Calcutta' \u003e(UTC+05:30) Chennai\u003c/option\u003e\n\t\u003coption value='Asia/Kolkata' \u003e(UTC+05:30) Kolkata\u003c/option\u003e\n\t\u003coption value='Asia/Calcutta' \u003e(UTC+05:30) Mumbai\u003c/option\u003e\n\t\u003coption value='Asia/Calcutta' \u003e(UTC+05:30) New Delhi\u003c/option\u003e\n\t\u003coption value='Asia/Calcutta' \u003e(UTC+05:30) Sri Jayawardenepura\u003c/option\u003e\n\t\u003coption value='Asia/Katmandu' \u003e(UTC+05:45) Kathmandu\u003c/option\u003e\n\t\u003coption value='Asia/Almaty' \u003e(UTC+06:00) Almaty\u003c/option\u003e\n\t\u003coption value='Asia/Dhaka' \u003e(UTC+06:00) Astana\u003c/option\u003e\n\t\u003coption value='Asia/Dhaka' \u003e(UTC+06:00) Dhaka\u003c/option\u003e\n\t\u003coption value='Asia/Yekaterinburg' \u003e(UTC+06:00) Ekaterinburg\u003c/option\u003e\n\t\u003coption value='Asia/Rangoon' \u003e(UTC+06:30) Rangoon\u003c/option\u003e\n\t\u003coption value='Asia/Bangkok' \u003e(UTC+07:00) Bangkok\u003c/option\u003e\n\t\u003coption value='Asia/Bangkok' \u003e(UTC+07:00) Hanoi\u003c/option\u003e\n\t\u003coption value='Asia/Jakarta' \u003e(UTC+07:00) Jakarta\u003c/option\u003e\n\t\u003coption value='Asia/Novosibirsk' \u003e(UTC+07:00) Novosibirsk\u003c/option\u003e\n\t\u003coption value='Asia/Hong_Kong' \u003e(UTC+08:00) Beijing\u003c/option\u003e\n\t\u003coption value='Asia/Chongqing' \u003e(UTC+08:00) Chongqing\u003c/option\u003e\n\t\u003coption value='Asia/Hong_Kong' \u003e(UTC+08:00) Hong Kong\u003c/option\u003e\n\t\u003coption value='Asia/Krasnoyarsk' \u003e(UTC+08:00) Krasnoyarsk\u003c/option\u003e\n\t\u003coption value='Asia/Kuala_Lumpur' \u003e(UTC+08:00) Kuala Lumpur\u003c/option\u003e\n\t\u003coption value='Australia/Perth' \u003e(UTC+08:00) Perth\u003c/option\u003e\n\t\u003coption value='Asia/Singapore' \u003e(UTC+08:00) Singapore\u003c/option\u003e\n\t\u003coption value='Asia/Taipei' \u003e(UTC+08:00) Taipei\u003c/option\u003e\n\t\u003coption value='Asia/Ulan_Bator' \u003e(UTC+08:00) Ulaan Bataar\u003c/option\u003e\n\t\u003coption value='Asia/Urumqi' \u003e(UTC+08:00) Urumqi\u003c/option\u003e\n\t\u003coption value='Asia/Irkutsk' \u003e(UTC+09:00) Irkutsk\u003c/option\u003e\n\t\u003coption value='Asia/Tokyo' \u003e(UTC+09:00) Osaka\u003c/option\u003e\n\t\u003coption value='Asia/Tokyo' \u003e(UTC+09:00) Sapporo\u003c/option\u003e\n\t\u003coption value='Asia/Seoul' \u003e(UTC+09:00) Seoul\u003c/option\u003e\n\t\u003coption value='Asia/Tokyo' \u003e(UTC+09:00) Tokyo\u003c/option\u003e\n\t\u003coption value='Australia/Adelaide' \u003e(UTC+09:30) Adelaide\u003c/option\u003e\n\t\u003coption value='Australia/Darwin' \u003e(UTC+09:30) Darwin\u003c/option\u003e\n\t\u003coption value='Australia/Brisbane' \u003e(UTC+10:00) Brisbane\u003c/option\u003e\n\t\u003coption value='Australia/Canberra' \u003e(UTC+10:00) Canberra\u003c/option\u003e\n\t\u003coption value='Pacific/Guam' \u003e(UTC+10:00) Guam\u003c/option\u003e\n\t\u003coption value='Australia/Hobart' \u003e(UTC+10:00) Hobart\u003c/option\u003e\n\t\u003coption value='Australia/Melbourne' \u003e(UTC+10:00) Melbourne\u003c/option\u003e\n\t\u003coption value='Pacific/Port_Moresby' \u003e(UTC+10:00) Port Moresby\u003c/option\u003e\n\t\u003coption value='Australia/Sydney' \u003e(UTC+10:00) Sydney\u003c/option\u003e\n\t\u003coption value='Asia/Yakutsk' \u003e(UTC+10:00) Yakutsk\u003c/option\u003e\n\t\u003coption value='Asia/Vladivostok' \u003e(UTC+11:00) Vladivostok\u003c/option\u003e\n\t\u003coption value='Pacific/Auckland' \u003e(UTC+12:00) Auckland\u003c/option\u003e\n\t\u003coption value='Pacific/Fiji' \u003e(UTC+12:00) Fiji\u003c/option\u003e\n\t\u003coption value='Pacific/Kwajalein' \u003e(UTC+12:00) International Date Line West\u003c/option\u003e\n\t\u003coption value='Asia/Kamchatka' \u003e(UTC+12:00) Kamchatka\u003c/option\u003e\n\t\u003coption value='Asia/Magadan' \u003e(UTC+12:00) Magadan\u003c/option\u003e\n\t\u003coption value='Pacific/Fiji' \u003e(UTC+12:00) Marshall Is.\u003c/option\u003e\n\t\u003coption value='Asia/Magadan' \u003e(UTC+12:00) New Caledonia\u003c/option\u003e\n\t\u003coption value='Asia/Magadan' \u003e(UTC+12:00) Solomon Is.\u003c/option\u003e\n\t\u003coption value='Pacific/Auckland' \u003e(UTC+12:00) Wellington\u003c/option\u003e\n\t\u003coption value='Pacific/Tongatapu' \u003e(UTC+13:00) Nuku'alofa\u003c/option\u003e\n    \u003c/select\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamroncade%2Ftimezone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcamroncade%2Ftimezone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamroncade%2Ftimezone/lists"}