Blocks
1 year ago
Contracts
1 year ago
Errors
1 year ago
Scripts
2 years ago
Arrays.php
3 years ago
ColorService.php
3 years ago
Currency.php
1 year ago
Encryption.php
3 years ago
Server.php
2 years ago
TimeDate.php
2 years ago
Translations.php
3 years ago
URL.php
2 years ago
UtilityService.php
3 years ago
UtilityServiceProvider.php
3 years ago
kses.json
1 year ago
TimeDate.php
260 lines
| 1 | <?php |
| 2 | |
| 3 | namespace SureCart\Support; |
| 4 | |
| 5 | /** |
| 6 | * Datetime utilities. |
| 7 | */ |
| 8 | class TimeDate { |
| 9 | /** |
| 10 | * Get the SureCart date format |
| 11 | * |
| 12 | * @return string |
| 13 | */ |
| 14 | public static function getDateFormat() { |
| 15 | $date_format = get_option( 'date_format' ); |
| 16 | if ( empty( $date_format ) ) { |
| 17 | // Return default date format if the option is empty. |
| 18 | $date_format = 'F j, Y'; |
| 19 | } |
| 20 | return apply_filters( 'surecart/date_format', $date_format ); |
| 21 | } |
| 22 | |
| 23 | /** |
| 24 | * Get the SureCart time format |
| 25 | * |
| 26 | * @return string |
| 27 | */ |
| 28 | public static function getTimeFormat() { |
| 29 | $time_format = get_option( 'time_format' ); |
| 30 | if ( empty( $time_format ) ) { |
| 31 | // Return default time format if the option is empty. |
| 32 | $time_format = 'g:i a'; |
| 33 | } |
| 34 | return apply_filters( 'surecart/time_format', $time_format ); |
| 35 | } |
| 36 | |
| 37 | /** |
| 38 | * Date Format - Allows to change date format for everything SureCart |
| 39 | * |
| 40 | * @return string |
| 41 | */ |
| 42 | public static function formatDate( $timestamp ) { |
| 43 | return date_i18n( self::getDateFormat(), $timestamp ); |
| 44 | } |
| 45 | |
| 46 | /** |
| 47 | * WooCommerce Time Format - Allows to change time format for everything WooCommerce. |
| 48 | * |
| 49 | * @return string |
| 50 | */ |
| 51 | public static function formatTime( $timestamp ) { |
| 52 | return date_i18n( self::getTimeFormat(), $timestamp ); |
| 53 | } |
| 54 | |
| 55 | /** |
| 56 | * Format both date and time |
| 57 | * |
| 58 | * @param integer $timestamp |
| 59 | * @return string |
| 60 | */ |
| 61 | public static function formatDateAndTime( $timestamp ) { |
| 62 | return self::formatDate( $timestamp ) . ' ' . self::formatTime( $timestamp ); |
| 63 | } |
| 64 | |
| 65 | /** |
| 66 | * Human readable Human Time Diff |
| 67 | * |
| 68 | * @param integer $timestamp Timestamp |
| 69 | * @return string |
| 70 | */ |
| 71 | public static function humanTimeDiff( $timestamp, $ignore_after = '1 day' ) { |
| 72 | if ( $timestamp > strtotime( "-$ignore_after", time() ) ) { |
| 73 | return sprintf( |
| 74 | /* translators: %s: human-readable time difference */ |
| 75 | _x( '%s ago', '%s = human-readable time difference', 'surecart' ), |
| 76 | human_time_diff( $timestamp, time() ) |
| 77 | ); |
| 78 | } else { |
| 79 | return self::formatDate( $timestamp ); |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | public static function timezoneOptions() { |
| 84 | return [ |
| 85 | 'America/Adak' => __( '(GMT-10:00) America/Adak', 'surecart' ), |
| 86 | 'Pacific/Honolulu' => __( '(GMT-10:00) Hawaii', 'surecart' ), |
| 87 | 'America/Juneau' => __( '(GMT-09:00) Alaska', 'surecart' ), |
| 88 | 'America/Anchorage' => __( '(GMT-09:00) America/Anchorage', 'surecart' ), |
| 89 | 'America/Metlakatla' => __( '(GMT-09:00) America/Metlakatla', 'surecart' ), |
| 90 | 'America/Nome' => __( '(GMT-09:00) America/Nome', 'surecart' ), |
| 91 | 'America/Sitka' => __( '(GMT-09:00) America/Sitka', 'surecart' ), |
| 92 | 'America/Yakutat' => __( '(GMT-09:00) America/Yakutat', 'surecart' ), |
| 93 | 'America/Los_Angeles' => __( '(GMT-08:00) Pacific Time (US & Canada)', 'surecart' ), |
| 94 | 'America/Boise' => __( '(GMT-07:00) America/Boise', 'surecart' ), |
| 95 | 'America/Phoenix' => __( '(GMT-07:00) Arizona', 'surecart' ), |
| 96 | 'America/Denver' => __( '(GMT-07:00) Mountain Time (US & Canada)', 'surecart' ), |
| 97 | 'America/Indiana/Knox' => __( '(GMT-06:00) America/Indiana/Knox', 'surecart' ), |
| 98 | 'America/Indiana/Tell_City' => __( '(GMT-06:00) America/Indiana/Tell_City', 'surecart' ), |
| 99 | 'America/Menominee' => __( '(GMT-06:00) America/Menominee', 'surecart' ), |
| 100 | 'America/North_Dakota/Beulah' => __( '(GMT-06:00) America/North_Dakota/Beulah', 'surecart' ), |
| 101 | 'America/North_Dakota/Center' => __( '(GMT-06:00) America/North_Dakota/Center', 'surecart' ), |
| 102 | 'America/North_Dakota/New_Salem' => __( '(GMT-06:00) America/North_Dakota/New_Salem', 'surecart' ), |
| 103 | 'America/Chicago' => __( '(GMT-06:00) Central Time (US & Canada)', 'surecart' ), |
| 104 | 'America/Detroit' => __( '(GMT-05:00) America/Detroit', 'surecart' ), |
| 105 | 'America/Indiana/Marengo' => __( '(GMT-05:00) America/Indiana/Marengo', 'surecart' ), |
| 106 | 'America/Indiana/Petersburg' => __( '(GMT-05:00) America/Indiana/Petersburg', 'surecart' ), |
| 107 | 'America/Indiana/Vevay' => __( '(GMT-05:00) America/Indiana/Vevay', 'surecart' ), |
| 108 | 'America/Indiana/Vincennes' => __( '(GMT-05:00) America/Indiana/Vincennes', 'surecart' ), |
| 109 | 'America/Indiana/Winamac' => __( '(GMT-05:00) America/Indiana/Winamac', 'surecart' ), |
| 110 | 'America/Kentucky/Louisville' => __( '(GMT-05:00) America/Kentucky/Louisville', 'surecart' ), |
| 111 | 'America/Kentucky/Monticello' => __( '(GMT-05:00) America/Kentucky/Monticello', 'surecart' ), |
| 112 | 'America/New_York' => __( '(GMT-05:00) Eastern Time (US & Canada)', 'surecart' ), |
| 113 | 'America/Indiana/Indianapolis' => __( '(GMT-05:00) Indiana (East)', 'surecart' ), |
| 114 | 'Etc/GMT+12' => __( '(GMT-12:00) International Date Line West', 'surecart' ), |
| 115 | 'Pacific/Pago_Pago' => __( '(GMT-11:00) American Samoa', 'surecart' ), |
| 116 | 'Pacific/Midway' => __( '(GMT-11:00) Midway Island', 'surecart' ), |
| 117 | 'America/Tijuana' => __( '(GMT-08:00) Tijuana', 'surecart' ), |
| 118 | 'America/Chihuahua' => __( '(GMT-07:00) Chihuahua', 'surecart' ), |
| 119 | 'America/Mazatlan' => __( '(GMT-07:00) Mazatlan', 'surecart' ), |
| 120 | 'America/Guatemala' => __( '(GMT-06:00) Central America', 'surecart' ), |
| 121 | 'America/Mexico_City' => __( '(GMT-06:00) Guadalajara', 'surecart' ), |
| 122 | 'America/Mexico_City' => __( '(GMT-06:00) Mexico City', 'surecart' ), |
| 123 | 'America/Monterrey' => __( '(GMT-06:00) Monterrey', 'surecart' ), |
| 124 | 'America/Regina' => __( '(GMT-06:00) Saskatchewan', 'surecart' ), |
| 125 | 'America/Bogota' => __( '(GMT-05:00) Bogota', 'surecart' ), |
| 126 | 'America/Lima' => __( '(GMT-05:00) Lima', 'surecart' ), |
| 127 | 'America/Lima' => __( '(GMT-05:00) Quito', 'surecart' ), |
| 128 | 'America/Halifax' => __( '(GMT-04:00) Atlantic Time (Canada)', 'surecart' ), |
| 129 | 'America/Caracas' => __( '(GMT-04:00) Caracas', 'surecart' ), |
| 130 | 'America/Guyana' => __( '(GMT-04:00) Georgetown', 'surecart' ), |
| 131 | 'America/La_Paz' => __( '(GMT-04:00) La Paz', 'surecart' ), |
| 132 | 'America/Puerto_Rico' => __( '(GMT-04:00) Puerto Rico', 'surecart' ), |
| 133 | 'America/Santiago' => __( '(GMT-04:00) Santiago', 'surecart' ), |
| 134 | 'America/St_Johns' => __( '(GMT-03:30) Newfoundland', 'surecart' ), |
| 135 | 'America/Sao_Paulo' => __( '(GMT-03:00) Brasilia', 'surecart' ), |
| 136 | 'America/Argentina/Buenos_Aires' => __( '(GMT-03:00) Buenos Aires', 'surecart' ), |
| 137 | 'America/Godthab' => __( '(GMT-03:00) Greenland', 'surecart' ), |
| 138 | 'America/Montevideo' => __( '(GMT-03:00) Montevideo', 'surecart' ), |
| 139 | 'Atlantic/South_Georgia' => __( '(GMT-02:00) Mid-Atlantic', 'surecart' ), |
| 140 | 'Atlantic/Azores' => __( '(GMT-01:00) Azores', 'surecart' ), |
| 141 | 'Atlantic/Cape_Verde' => __( '(GMT-01:00) Cape Verde Is.', 'surecart' ), |
| 142 | 'Europe/London' => __( '(GMT+00:00) Edinburgh', 'surecart' ), |
| 143 | 'Europe/Lisbon' => __( '(GMT+00:00) Lisbon', 'surecart' ), |
| 144 | 'Europe/London' => __( '(GMT+00:00) London', 'surecart' ), |
| 145 | 'Africa/Monrovia' => __( '(GMT+00:00) Monrovia', 'surecart' ), |
| 146 | 'Etc/UTC' => __( '(GMT+00:00) UTC', 'surecart' ), |
| 147 | 'Europe/Amsterdam' => __( '(GMT+01:00) Amsterdam', 'surecart' ), |
| 148 | 'Europe/Belgrade' => __( '(GMT+01:00) Belgrade', 'surecart' ), |
| 149 | 'Europe/Berlin' => __( '(GMT+01:00) Berlin', 'surecart' ), |
| 150 | 'Europe/Zurich' => __( '(GMT+01:00) Bern', 'surecart' ), |
| 151 | 'Europe/Bratislava' => __( '(GMT+01:00) Bratislava', 'surecart' ), |
| 152 | 'Europe/Brussels' => __( '(GMT+01:00) Brussels', 'surecart' ), |
| 153 | 'Europe/Budapest' => __( '(GMT+01:00) Budapest', 'surecart' ), |
| 154 | 'Africa/Casablanca' => __( '(GMT+01:00) Casablanca', 'surecart' ), |
| 155 | 'Europe/Copenhagen' => __( '(GMT+01:00) Copenhagen', 'surecart' ), |
| 156 | 'Europe/Dublin' => __( '(GMT+01:00) Dublin', 'surecart' ), |
| 157 | 'Europe/Ljubljana' => __( '(GMT+01:00) Ljubljana', 'surecart' ), |
| 158 | 'Europe/Madrid' => __( '(GMT+01:00) Madrid', 'surecart' ), |
| 159 | 'Europe/Paris' => __( '(GMT+01:00) Paris', 'surecart' ), |
| 160 | 'Europe/Prague' => __( '(GMT+01:00) Prague', 'surecart' ), |
| 161 | 'Europe/Rome' => __( '(GMT+01:00) Rome', 'surecart' ), |
| 162 | 'Europe/Sarajevo' => __( '(GMT+01:00) Sarajevo', 'surecart' ), |
| 163 | 'Europe/Skopje' => __( '(GMT+01:00) Skopje', 'surecart' ), |
| 164 | 'Europe/Stockholm' => __( '(GMT+01:00) Stockholm', 'surecart' ), |
| 165 | 'Europe/Vienna' => __( '(GMT+01:00) Vienna', 'surecart' ), |
| 166 | 'Europe/Warsaw' => __( '(GMT+01:00) Warsaw', 'surecart' ), |
| 167 | 'Africa/Algiers' => __( '(GMT+01:00) West Central Africa', 'surecart' ), |
| 168 | 'Europe/Zagreb' => __( '(GMT+01:00) Zagreb', 'surecart' ), |
| 169 | 'Europe/Zurich' => __( '(GMT+01:00) Zurich', 'surecart' ), |
| 170 | 'Europe/Athens' => __( '(GMT+02:00) Athens', 'surecart' ), |
| 171 | 'Europe/Bucharest' => __( '(GMT+02:00) Bucharest', 'surecart' ), |
| 172 | 'Africa/Cairo' => __( '(GMT+02:00) Cairo', 'surecart' ), |
| 173 | 'Africa/Harare' => __( '(GMT+02:00) Harare', 'surecart' ), |
| 174 | 'Europe/Helsinki' => __( '(GMT+02:00) Helsinki', 'surecart' ), |
| 175 | 'Asia/Jerusalem' => __( '(GMT+02:00) Jerusalem', 'surecart' ), |
| 176 | 'Europe/Kaliningrad' => __( '(GMT+02:00) Kaliningrad', 'surecart' ), |
| 177 | 'Europe/Kiev' => __( '(GMT+02:00) Kyiv', 'surecart' ), |
| 178 | 'Africa/Johannesburg' => __( '(GMT+02:00) Pretoria', 'surecart' ), |
| 179 | 'Europe/Riga' => __( '(GMT+02:00) Riga', 'surecart' ), |
| 180 | 'Europe/Sofia' => __( '(GMT+02:00) Sofia', 'surecart' ), |
| 181 | 'Europe/Tallinn' => __( '(GMT+02:00) Tallinn', 'surecart' ), |
| 182 | 'Europe/Vilnius' => __( '(GMT+02:00) Vilnius', 'surecart' ), |
| 183 | 'Asia/Baghdad' => __( '(GMT+03:00) Baghdad', 'surecart' ), |
| 184 | 'Europe/Istanbul' => __( '(GMT+03:00) Istanbul', 'surecart' ), |
| 185 | 'Asia/Kuwait' => __( '(GMT+03:00) Kuwait', 'surecart' ), |
| 186 | 'Europe/Minsk' => __( '(GMT+03:00) Minsk', 'surecart' ), |
| 187 | 'Europe/Moscow' => __( '(GMT+03:00) Moscow', 'surecart' ), |
| 188 | 'Africa/Nairobi' => __( '(GMT+03:00) Nairobi', 'surecart' ), |
| 189 | 'Asia/Riyadh' => __( '(GMT+03:00) Riyadh', 'surecart' ), |
| 190 | 'Europe/Moscow' => __( '(GMT+03:00) St. Petersburg', 'surecart' ), |
| 191 | 'Europe/Volgograd' => __( '(GMT+03:00) Volgograd', 'surecart' ), |
| 192 | 'Asia/Tehran' => __( '(GMT+03:30) Tehran', 'surecart' ), |
| 193 | 'Asia/Muscat' => __( '(GMT+04:00) Abu Dhabi', 'surecart' ), |
| 194 | 'Asia/Baku' => __( '(GMT+04:00) Baku', 'surecart' ), |
| 195 | 'Asia/Muscat' => __( '(GMT+04:00) Muscat', 'surecart' ), |
| 196 | 'Europe/Samara' => __( '(GMT+04:00) Samara', 'surecart' ), |
| 197 | 'Asia/Tbilisi' => __( '(GMT+04:00) Tbilisi', 'surecart' ), |
| 198 | 'Asia/Yerevan' => __( '(GMT+04:00) Yerevan', 'surecart' ), |
| 199 | 'Asia/Kabul' => __( '(GMT+04:30) Kabul', 'surecart' ), |
| 200 | 'Asia/Yekaterinburg' => __( '(GMT+05:00) Ekaterinburg', 'surecart' ), |
| 201 | 'Asia/Karachi' => __( '(GMT+05:00) Islamabad', 'surecart' ), |
| 202 | 'Asia/Karachi' => __( '(GMT+05:00) Karachi', 'surecart' ), |
| 203 | 'Asia/Tashkent' => __( '(GMT+05:00) Tashkent', 'surecart' ), |
| 204 | 'Asia/Kolkata' => __( '(GMT+05:30) Chennai', 'surecart' ), |
| 205 | 'Asia/Kolkata' => __( '(GMT+05:30) Kolkata', 'surecart' ), |
| 206 | 'Asia/Kolkata' => __( '(GMT+05:30) Mumbai', 'surecart' ), |
| 207 | 'Asia/Kolkata' => __( '(GMT+05:30) New Delhi', 'surecart' ), |
| 208 | 'Asia/Colombo' => __( '(GMT+05:30) Sri Jayawardenepura', 'surecart' ), |
| 209 | 'Asia/Kathmandu' => __( '(GMT+05:45) Kathmandu', 'surecart' ), |
| 210 | 'Asia/Almaty' => __( '(GMT+06:00) Almaty', 'surecart' ), |
| 211 | 'Asia/Dhaka' => __( '(GMT+06:00) Astana', 'surecart' ), |
| 212 | 'Asia/Dhaka' => __( '(GMT+06:00) Dhaka', 'surecart' ), |
| 213 | 'Asia/Urumqi' => __( '(GMT+06:00) Urumqi', 'surecart' ), |
| 214 | 'Asia/Rangoon' => __( '(GMT+06:30) Rangoon', 'surecart' ), |
| 215 | 'Asia/Bangkok' => __( '(GMT+07:00) Bangkok', 'surecart' ), |
| 216 | 'Asia/Bangkok' => __( '(GMT+07:00) Hanoi', 'surecart' ), |
| 217 | 'Asia/Jakarta' => __( '(GMT+07:00) Jakarta', 'surecart' ), |
| 218 | 'Asia/Krasnoyarsk' => __( '(GMT+07:00) Krasnoyarsk', 'surecart' ), |
| 219 | 'Asia/Novosibirsk' => __( '(GMT+07:00) Novosibirsk', 'surecart' ), |
| 220 | 'Asia/Shanghai' => __( '(GMT+08:00) Beijing', 'surecart' ), |
| 221 | 'Asia/Chongqing' => __( '(GMT+08:00) Chongqing', 'surecart' ), |
| 222 | 'Asia/Hong_Kong' => __( '(GMT+08:00) Hong Kong', 'surecart' ), |
| 223 | 'Asia/Irkutsk' => __( '(GMT+08:00) Irkutsk', 'surecart' ), |
| 224 | 'Asia/Kuala_Lumpur' => __( '(GMT+08:00) Kuala Lumpur', 'surecart' ), |
| 225 | 'Australia/Perth' => __( '(GMT+08:00) Perth', 'surecart' ), |
| 226 | 'Asia/Singapore' => __( '(GMT+08:00) Singapore', 'surecart' ), |
| 227 | 'Asia/Taipei' => __( '(GMT+08:00) Taipei', 'surecart' ), |
| 228 | 'Asia/Ulaanbaatar' => __( '(GMT+08:00) Ulaanbaatar', 'surecart' ), |
| 229 | 'Asia/Tokyo' => __( '(GMT+09:00) Osaka', 'surecart' ), |
| 230 | 'Asia/Tokyo' => __( '(GMT+09:00) Sapporo', 'surecart' ), |
| 231 | 'Asia/Seoul' => __( '(GMT+09:00) Seoul', 'surecart' ), |
| 232 | 'Asia/Tokyo' => __( '(GMT+09:00) Tokyo', 'surecart' ), |
| 233 | 'Asia/Yakutsk' => __( '(GMT+09:00) Yakutsk', 'surecart' ), |
| 234 | 'Australia/Adelaide' => __( '(GMT+09:30) Adelaide', 'surecart' ), |
| 235 | 'Australia/Darwin' => __( '(GMT+09:30) Darwin', 'surecart' ), |
| 236 | 'Australia/Brisbane' => __( '(GMT+10:00) Brisbane', 'surecart' ), |
| 237 | 'Australia/Melbourne' => __( '(GMT+10:00) Canberra', 'surecart' ), |
| 238 | 'Pacific/Guam' => __( '(GMT+10:00) Guam', 'surecart' ), |
| 239 | 'Australia/Hobart' => __( '(GMT+10:00) Hobart', 'surecart' ), |
| 240 | 'Australia/Melbourne' => __( '(GMT+10:00) Melbourne', 'surecart' ), |
| 241 | 'Pacific/Port_Moresby' => __( '(GMT+10:00) Port Moresby', 'surecart' ), |
| 242 | 'Australia/Sydney' => __( '(GMT+10:00) Sydney', 'surecart' ), |
| 243 | 'Asia/Vladivostok' => __( '(GMT+10:00) Vladivostok', 'surecart' ), |
| 244 | 'Asia/Magadan' => __( '(GMT+11:00) Magadan', 'surecart' ), |
| 245 | 'Pacific/Noumea' => __( '(GMT+11:00) New Caledonia', 'surecart' ), |
| 246 | 'Pacific/Guadalcanal' => __( '(GMT+11:00) Solomon Is.', 'surecart' ), |
| 247 | 'Asia/Srednekolymsk' => __( '(GMT+11:00) Srednekolymsk', 'surecart' ), |
| 248 | 'Pacific/Auckland' => __( '(GMT+12:00) Auckland', 'surecart' ), |
| 249 | 'Pacific/Fiji' => __( '(GMT+12:00) Fiji', 'surecart' ), |
| 250 | 'Asia/Kamchatka' => __( '(GMT+12:00) Kamchatka', 'surecart' ), |
| 251 | 'Pacific/Majuro' => __( '(GMT+12:00) Marshall Is.', 'surecart' ), |
| 252 | 'Pacific/Auckland' => __( '(GMT+12:00) Wellington', 'surecart' ), |
| 253 | 'Pacific/Chatham' => __( '(GMT+12:45) Chatham Is.', 'surecart' ), |
| 254 | 'Pacific/Tongatapu' => __( '(GMT+13:00) Nuku'alofa', 'surecart' ), |
| 255 | 'Pacific/Apia' => __( '(GMT+13:00) Samoa', 'surecart' ), |
| 256 | 'Pacific/Fakaofo' => __( '(GMT+13:00) Tokelau Is.', 'surecart' ), |
| 257 | ]; |
| 258 | } |
| 259 | } |
| 260 |