mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-04 05:36:13 +08:00 
			
		
		
		
	Merge remote-tracking branch 'bertyhell/feature/timezones-package'
This commit is contained in:
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -7,4 +7,5 @@ dist-ssr
 | 
			
		||||
 | 
			
		||||
/data
 | 
			
		||||
!/data/.gitkeep
 | 
			
		||||
.vscode
 | 
			
		||||
/uptime-kuma
 | 
			
		||||
.vscode
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2577
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2577
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -68,6 +68,7 @@
 | 
			
		||||
        "socket.io-client": "^4.2.0",
 | 
			
		||||
        "sqlite3": "github:mapbox/node-sqlite3#593c9d",
 | 
			
		||||
        "tcp-ping": "^0.1.1",
 | 
			
		||||
        "timezones-list": "^3.0.1",
 | 
			
		||||
        "thirty-two": "^1.0.2",
 | 
			
		||||
        "v-pagination-3": "^0.1.6",
 | 
			
		||||
        "vue": "^3.2.8",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
import dayjs from "dayjs";
 | 
			
		||||
import timezone from "dayjs/plugin/timezone";
 | 
			
		||||
import utc from "dayjs/plugin/utc";
 | 
			
		||||
import timezones from "timezones-list";
 | 
			
		||||
 | 
			
		||||
dayjs.extend(utc)
 | 
			
		||||
dayjs.extend(timezone)
 | 
			
		||||
@@ -16,376 +17,22 @@ function getTimezoneOffset(timeZone) {
 | 
			
		||||
    return -offset;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// From: https://stackoverflow.com/questions/38399465/how-to-get-list-of-all-timezones-in-javascript
 | 
			
		||||
// TODO: Move to separate file
 | 
			
		||||
const aryIannaTimeZones = [
 | 
			
		||||
    "Europe/Andorra",
 | 
			
		||||
    "Asia/Dubai",
 | 
			
		||||
    "Asia/Kabul",
 | 
			
		||||
    "Europe/Tirane",
 | 
			
		||||
    "Asia/Yerevan",
 | 
			
		||||
    "Antarctica/Casey",
 | 
			
		||||
    "Antarctica/Davis",
 | 
			
		||||
    "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/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",
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export function timezoneList() {
 | 
			
		||||
 | 
			
		||||
    let result = [];
 | 
			
		||||
 | 
			
		||||
    for (let timezone of aryIannaTimeZones) {
 | 
			
		||||
 | 
			
		||||
    for (let timezone of timezones) {
 | 
			
		||||
        try {
 | 
			
		||||
            let display = dayjs().tz(timezone).format("Z");
 | 
			
		||||
            let display = dayjs().tz(timezone.tzCode).format("Z");
 | 
			
		||||
 | 
			
		||||
            result.push({
 | 
			
		||||
                name: `(UTC${display}) ${timezone}`,
 | 
			
		||||
                value: timezone,
 | 
			
		||||
                time: getTimezoneOffset(timezone),
 | 
			
		||||
                name: `(UTC${display}) ${timezone.tzCode}`,
 | 
			
		||||
                value: timezone.tzCode,
 | 
			
		||||
                time: getTimezoneOffset(timezone.tzCode),
 | 
			
		||||
            })
 | 
			
		||||
        } catch (e) {
 | 
			
		||||
            console.error(e.message);
 | 
			
		||||
            console.log("Skip this timezone")
 | 
			
		||||
            console.log("Skip this timezone");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    result.sort((a, b) => {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user