├── AssistBot.png ├── AssistBot.php ├── README.md ├── AssistBot.css ├── AssistBotSample3.htm ├── AssistBotSample1.htm ├── AssistBotSample5.htm ├── AssistBotSample4.htm ├── AssistBotSample2.htm └── TimeZoneTest.htm /AssistBot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lrusso/AssistBot/HEAD/AssistBot.png -------------------------------------------------------------------------------- /AssistBot.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AssistBot - Chatbots in JavaScript 2 | 3 |  4 | 5 | ## Bot samples 6 | 7 | | BOT URL | DETAILS | 8 | | :---------------:| :-----| 9 | | https://lrusso.github.io/AssistBot/AssistBotSample1.htm | Web receptionist. 10 | | https://lrusso.github.io/AssistBot/AssistBotSample2.htm | Hotel receptionist. 11 | | https://lrusso.github.io/AssistBot/AssistBotSample3.htm | Hospital receptionist. 12 | | https://lrusso.github.io/AssistBot/AssistBotSample4.htm | Tech Support receptionist. 13 | | https://lrusso.github.io/AssistBot/AssistBotSample5.htm | 3D Bot Web receptionist. 14 | 15 | ## Bots working in time ranges and time zones 16 | 17 | Is possible to set a working time range for the bots. The window dialog with the bot will only appear within that time range. If you don't want or need this feature, just set the bot to work from 0 to 23. 18 | 19 | ```javascript 20 | var workingFrom = 9; 21 | var workingTo = 18; 22 | var workingTimeZone = "-3"; // EXAMPLE TIME ZONE 23 | ``` 24 | ## Time zone values 25 | 26 | https://lrusso.github.io/AssistBot/TimeZoneTest.htm 27 | 28 | ## Sending the data (client side) 29 | 30 | There are two methods for posting data in the samples: 31 | 32 | - First method: Standard XMLHttpRequest. 33 | - Second method: Creating an image variable, setting in the src value a server URL where all the parameters are sent by GET and the answer of the server must be an image in order to get a valid reply from the bot. This method is useful if you want to avoid the CORS limitation that may exists between servers. 34 | 35 | ## Receiving the data (server side) 36 | 37 | There is a AssistBot.php file in this repository with a sample logic. 38 | 39 | ## Based on BotUI 40 | 41 | https://github.com/botui/botui **(Version 0.3.8)** 42 | 43 | ## Bugfixes and updates 44 | 45 | | TYPE | ELEMENT | DETAILS | 46 | | :------------: |:---------------:| :-----| 47 | | Fixed | Core | Prevents from inputting HTML content. 48 | | Fixed | Core | Prevents from automatically showing a response. 49 | | Fixed | Style | Bugfix when inputting a blank space. 50 | | Fixed | Style | Bugfix where the messages were misplaced by 2 pixels. 51 | | Fixed | Style | Bugfix where the icons inherits the box-sizing property. 52 | | Fixed | Style | Bugfix where the input box inherits the box-sizing property. 53 | | Fixed | Style | Bugfix where the messages inherits the box-sizing property. 54 | | Fixed | Style | Bugfix where the three dots inherits the box-sizing property. 55 | | Updated | Core | Scroll to bottom when new content. 56 | | Updated | Core | Agent and Human icons are loaded from the CSS file. 57 | | Updated | Core | Send button by default and with a different CSS class. 58 | | Updated | Samples | Looping checkings for inputted data. 59 | | Updated | Samples | Implemented scrolling chatbot window. 60 | | Updated | Samples | Implemented close button in the chatbot window. 61 | -------------------------------------------------------------------------------- /AssistBot.css: -------------------------------------------------------------------------------- 1 | a.botui-message-content-link:focus{outline:thin dotted} 2 | a.botui-message-content-link:focus:active,a.botui-message-content-link:focus:hover{outline:0} 3 | form.botui-actions-text{margin:0} 4 | button.botui-actions-buttons-button,button.botui-actions-buttons-button-send,input.botui-actions-text-input{margin:0;font-size:100%;line-height:normal;vertical-align:baseline} 5 | button.botui-actions-buttons-button::-moz-focus-inner,button.botui-actions-buttons-button-send::-moz-focus-inner,input.botui-actions-text-input::-moz-focus-inner{border:0;padding:0} 6 | button.botui-actions-buttons-button,button.botui-actions-buttons-button-send{cursor:pointer;-webkit-appearance:button} 7 | .botui-app-container{position:fixed;bottom:0;right:15px;width:300px;z-index:9999;border-left:1px solid silver;border-top:1px solid silver;border-right:1px solid silver;background-color:white;display:none;} 8 | .botui-container{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;font-size:14px;background-color:#fff;font-family:Arial} 9 | .botui-message{margin:10px 0;min-height:20px} 10 | .botui-message:after{display:block;content:"";clear:both} 11 | .botui-message-content{width:auto;max-width:75%;display:inline-block} 12 | .botui-message-content.human{float:right} 13 | .botui-message-content iframe{width:100%} 14 | .botui-message-content-image{margin:5px 0;display:block;max-width:200px;max-height:200px} 15 | .botui-message-content-link{text-decoration:underline} 16 | .profil{position:relative;border-radius:50%} 17 | .profil.human{float:right;margin-left:5px} 18 | .profil.agent{float:left;margin-right:5px} 19 | .profil>span{display:inline-block;width:26px;height:26px;padding:2px;border:2px solid #e8e8e8;border-radius:50%;background-repeat:no-repeat;box-sizing:content-box} 20 | .profil>span.agent{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAvVJREFUOI2FlE1oXFUUx3/nvjdv5k1mmplME4N1khJspjZtitpKKMKAVgRFVyoqymg3xbYWxC5c2YUrQSw2btwqiBCUohW6ENEuRIMfCyUgVFuqaU2aj+k4vkze3HdvFxM1M2+mPfDgcu49v3PO/75zhR5WLp90E8Wl57H2Way6a8M9J4oPc+sLH8zMzETd4qQrrHJkOBGpT4H9fSkh6Qq1wACCNhYws0a7j3/50emFWwLLlUoqobPfIUwWtjgs17oWQgQ/J/Oy/9z09Ppmv+o86ETZ4wiTvicxmKOE8W2J1hr2NFei453xMaDCHgJYC22bP+UJ2wcd3nwuz9asA4AVefmmwKknXvFBSp06DPQpHtuX5tCDW0h5itefym8ES7FcqaR6Avv8MA2wubbRQZe3XiigI8vdY612d9zu4jmttK7J9PUEat2UoYzCbXXEwUmft18c4JtfGzx5IIPI/7WPDTmMDii0brY15HZqsHPYZaTgMFny2T3i8cvlkIN7ffrT7XI/tCvJwormwrVGmz92KVdrEY9OJNk9kkAE9ox6MRjAA+MeV2om5o+dvHAtYu6K3viRu5uOLL8vNpm9pG8NtBbeOFfn8x/XegLPzzV49eM6YWRje/FeNuyTbwOWukzJWmh5/6t6z2Q9gf80DKc/qyJmUxUWTp2pslDtPo7Q5ZbbshmQaoi40pp6bQhuoi2A8+/i3ZNHMsNiy64rT9/hC1PFNHduddi1zQFjWx+weh2KaQ/PNskow968nH/m4Xvmz379Q/O/lk+dOPxeVI9Wcyl1ZiJryXmWfNJhqRZ/3ZZrQi6pGEw6TPRbcgnOBoFTfefES9MAMv3a0YJp6kWUatPzb5IU8z6PHMiQy7SUWboe8sVswHwtxNdBeyZjNKFXUEbb+zthBuxtWXdZCVxullbrpWPUS8eYj3asAAxlEotxwZUrSX2fa4UxsbS9vApoBOvfp/oTU1cv/vbn9nuDHMBfFy/9AdgwaPxkjNnXyRSlxm8AdbAFzoG/yN4AAAAASUVORK5CYII=");background-position:5px 4px} 21 | .profil>span.human{background-image:url("data:image/png;base64,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");background-position:center} 22 | button.botui-actions-buttons-button{margin-top:10px;margin-bottom:10px} 23 | button.botui-actions-buttons-button:not(:last-child),button.botui-actions-buttons-button-send:not(:last-child){margin-right:10px} 24 | .botui-messages-container{padding-left:10px;padding-top:5px;padding-bottom:10px;padding-right:10px;display:block;width:auto;} 25 | .botui-actions-container{padding-left:10px;padding-top:5px;padding-bottom:10px;padding-right:10px} 26 | .botui-message{min-height:30px} 27 | .botui-message-content{padding:8px 13px;border-radius:15px;color:#595a5a;background-color:#ebebeb;box-sizing:content-box} 28 | .botui-message-content.human{color:#f7f8f8;background-color:#919292} 29 | .botui-message-content.text{min-height:18px;line-height:18px} 30 | .botui-message-content.loading{background-color:rgba(206,206,206,.5);line-height:1.3;text-align:center;box-sizing:content-box} 31 | .botui-message-content.embed{padding:5px;border-radius:5px} 32 | .botui-message-content-link{color:#919292} 33 | .botui-actions-text-input{border:0;outline:0;border-radius:0;width:100%;padding:5px 7px;font-family:Arial;background-color:transparent;color:#595a5a;border-bottom:1px solid #919292;box-sizing:content-box} 34 | .botui-actions-buttons-button{border:0;color:#fff;line-height:1;cursor:pointer;font-size:14px;font-weight:500;padding:7px 15px;border-radius:4px;font-family:Arial;background:#3a76b1;box-shadow:2px 3px 4px 0 rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent} 35 | .botui-actions-buttons-button-send{width:70px;border:0;color:#fff;line-height:1;cursor:pointer;font-size:14px;font-weight:500;padding:7px 15px;border-radius:4px;font-family:Arial;background:#3a76b1;box-shadow:2px 3px 4px 0 rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent} 36 | .botui-actions-text-select{border:0;outline:0;border-radius:0;padding:5px 7px;font-family:Arial;background-color:transparent;color:#595a5a;border-bottom:1px solid #919292} 37 | .botui-actions-text-searchselect{border:0;outline:0;border-radius:0;padding:5px 7px;font-family:Arial;background-color:transparent;color:#595a5a;border-bottom:1px solid #919292} 38 | .botui-actions-text-searchselect .dropdown-toggle{border:none!important} 39 | .botui-actions-text-searchselect .selected-tag{background-color:transparent!important;border:0!important} 40 | .slide-fade-enter-active{transition:all .3s ease} 41 | .slide-fade-enter,.slide-fade-leave-to{opacity:0;transform:translateX(-10px)} 42 | .dot{width:.5rem;height:.5rem;border-radius:.5rem;display:inline-block;background-color:#919292;box-sizing:content-box} 43 | .dot:nth-last-child(1){margin-left:.3rem;animation:loading .6s .3s linear infinite} 44 | .dot:nth-last-child(2){margin-left:.3rem;animation:loading .6s .2s linear infinite} 45 | .dot:nth-last-child(3){animation:loading .6s .1s linear infinite} 46 | @keyframes loading 47 | { 48 | 0%{transform:translate(0,0);background-color:#ababab} 49 | 25%{transform:translate(0,-3px)} 50 | 50%{transform:translate(0,0);background-color:#ababab} 51 | 75%{transform:translate(0,3px)} 52 | 100%{transform:translate(0,0)} 53 | } 54 | .botui-title{float:left;width:100%;padding-top:1px;border-bottom:1px solid silver;font-family:Arial;font-size:14px;line-height:30px;text-align:left;color:white;font-weight:bold;background-color:#3a76b1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent} 55 | .botui-titlename{padding-left:7px} 56 | .botui-scroller{display:block;width:100%;height:200px;overflow-y:hidden} 57 | .botui-closeicon{float:right;margin-right:5px;margin-top:8px;width:16px;height:16px;display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfiBh4ALjMcCa0fAAABK0lEQVQoz4WRv0sCYRyHH88UXGwKSglpuKGIogiEmtsCx5ZcGpzirT8ghOaGBoObgsjdMChoiganotGDarHupB/UlJmn59vw3nvVUH2Xl/f9fIbneb8Rwd9jqGNzaaeRL+tHk+27tfPxBMAAQHFxsGLEplegnAeTghNPm6NGjQW7jSAz1L6RUkopPXlRLtFx1K0nrS0BAoFb8KWu9INYStexEkIxzO89b/QBiBFJK46me2Ta7QAy52d3deVnHFrk/Gyp96TjHrenKoZoNhDbv4+PfLmnZpLD9eOwoMS+f0+U1FxQEWSS71ea/MF5WddGHWkJZeH5TQnAo3s4NRvidt9ogAG5j8nl1pmK7Vdt1PIqq3YVImpZ1Vh94uBak0Nx7LJ74kBY+Hebv88nsLefxkmy4roAAAAASUVORK5CYII=")} -------------------------------------------------------------------------------- /AssistBotSample3.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 || UTC VALUE | LOCATION |
| -12 | United States Minor Outlying Islands |
| -12 | Baker Island |
| -12 | Howland Island |
| -11 | United States |
| -11 | American Samoa |
| -11 | United States Minor Outlying Islands |
| -11 | Jarvis Island |
| -11 | Kingman Reef |
| -11 | Midway Atoll |
| -11 | Palmyra Atoll |
| -11 | New Zealand |
| -11 | Niue |
| -10 | France |
| -10 | French Polynesia (except Marquesas Islands and Gambier Islands) |
| -10 | New Zealand |
| -10 | Cook Islands |
| -10 | United States (Hawaii–Aleutian Time Zone) |
| -10 | Alaska |
| -10 | Aleutian Islands west of 169.30°W |
| -10 | Hawaii |
| -10 | United States Minor Outlying Islands |
| -10 | Johnston Atoll |
| -10 | Honolulu |
| -10 | Papeete |
| -9.5 | France |
| -9.5 | French Polynesia |
| -9.5 | Marquesas Islands |
| -9 | France |
| -9 | French Polynesia |
| -9 | Gambier Islands |
| -9 | United States (Alaska Time Zone) |
| -9 | Alaska (except Aleutian Islands west of 169.30°W) |
| -9 | Anchorage |
| -8 | Canada (Pacific Time Zone) |
| -8 | British Columbia (except Northern Rockies Regional Municipality, Peace River Regional District, and the south-eastern communities of Cranbrook, Golden and Invermere) |
| -8 | Yukon |
| -8 | France |
| -8 | Clipperton Island |
| -8 | Mexico |
| -8 | Baja California |
| -8 | United Kingdom |
| -8 | Pitcairn Islands |
| -8 | United States (Pacific Time Zone) |
| -8 | California |
| -8 | Idaho |
| -8 | North of Salmon River |
| -8 | Nevada (except West Wendover) |
| -8 | Oregon (except Malheur County) |
| -8 | Washington |
| -8 | Los Angeles |
| -8 | Vancouver |
| -8 | Tijuana |
| -7 | Canada (Mountain Time Zone) |
| -7 | Alberta |
| -7 | British Columbia |
| -7 | Northern Rockies Regional Municipality |
| -7 | Peace River Regional District |
| -7 | The south-eastern communities of Cranbrook, Golden and Invermere |
| -7 | Northwest Territories |
| -7 | Nunavut |
| -7 | Kitikmeot Region |
| -7 | Saskatchewan |
| -7 | Lloydminster |
| -7 | Mexico |
| -7 | Baja California Sur, Chihuahua, Nayarit, Sinaloa and Sonora states |
| -7 | United States (Mountain Time Zone) |
| -7 | Arizona |
| -7 | Colorado |
| -7 | Idaho |
| -7 | South of Salmon River |
| -7 | Kansas |
| -7 | The western counties of Greeley, Hamilton, Sherman and Wallace |
| -7 | Montana |
| -7 | Nebraska |
| -7 | The western counties of Cherry (western part), Hooker, Arthur, Keith, Perkins, Chase and Dundy, and all counties to the west of these |
| -7 | Nevada |
| -7 | West Wendover |
| -7 | New Mexico |
| -7 | North Dakota |
| -7 | The Southwestern counties of Adams, Billings, Bowman, Dunn (southern part), Golden Valley, Grant, Hettinger, McKenzie (southern part), Sioux (west of ND route 31), Slope and Stark |
| -7 | Oregon |
| -7 | Malheur County (except a small strip in the south) |
| -7 | South Dakota |
| -7 | The western counties of Corson, Dewey, Stanley (western part), Jackson and Bennett, and all counties to the west of these |
| -7 | Texas |
| -7 | The western counties of Culberson (northwestern part), El Paso and Hudspeth |
| -7 | Utah |
| -7 | Wyoming |
| -7 | Phoenix |
| -7 | Calgary |
| -7 | Ciudad Juárez |
| -6 | Belize |
| -6 | Canada (Central Time Zone) |
| -6 | Manitoba |
| -6 | Nunavut |
| -6 | Kivalliq Region (except Southampton Island) |
| -6 | Ontario |
| -6 | Ontario (West of 90° west) |
| -6 | Saskatchewan (except Lloydminster) |
| -6 | Chile |
| -6 | Easter Island |
| -6 | Costa Rica |
| -6 | Ecuador |
| -6 | Galápagos Islands |
| -6 | El Salvador |
| -6 | Guatemala |
| -6 | Honduras |
| -6 | Mexico (All except Baja California, Baja California Sur, Chihuahua, Nayarit, Quintana Roo, Sinaloa and Sonora) |
| -6 | Nicaragua |
| -6 | United States (Central Time Zone) |
| -6 | Alabama (Except for Chambers, Lee, Macon, & Russel counties) |
| -6 | Arkansas |
| -6 | Florida |
| -6 | The counties of Bay, Calhoun, Escambia, Holmes, Jackson, Okaloosa, Santa Rosa, Walton, and Washington, and northern Gulf county (panhandle) |
| -6 | Illinois |
| -6 | Indiana |
| -6 | Northwestern counties of Jasper, Lake, LaPorte, Newton, Porter and Starke |
| -6 | Southwestern counties of Gibson, Perry, Posey, Spencer, Vanderburgh and Warrick |
| -6 | Iowa |
| -6 | Kansas (except westernmost counties) |
| -6 | Kentucky |
| -6 | The counties of Breckinridge, Grayson, Hart, Green, Adair, Russell and Clinton, and all counties to the west of these |
| -6 | Louisiana |
| -6 | Michigan |
| -6 | The western counties of Dickinson, Gogebic, Iron and Menominee |
| -6 | Minnesota |
| -6 | Mississippi |
| -6 | Missouri |
| -6 | Nebraska |
| -6 | Central and eastern Nebraska |
| -6 | North Dakota (except southwest) |
| -6 | Oklahoma (except Kenton) |
| -6 | South Dakota |
| -6 | Eastern half |
| -6 | Tennessee |
| -6 | Counties located to the west of the counties of Scott, Morgan, Roane, Rhea, and Hamilton |
| -6 | Texas (except westernmost counties) |
| -6 | Wisconsin |
| -6 | Chicago |
| -6 | Guatemala City |
| -6 | Mexico City |
| -6 | San José |
| -6 | Winnipeg |
| -5 | Bahamas |
| -5 | Brazil |
| -5 | Acre |
| -5 | Amazonas (13 western municipalities, approximately marked by a line between Tabatinga and Porto Acre) |
| -5 | Canada (Eastern Time Zone) |
| -5 | Nunavut (Qikiqtaaluk Region except Resolute) |
| -5 | Ontario |
| -5 | Ontario (East of 90° West) |
| -5 | Quebec (Most of province except easternmost area) |
| -5 | Colombia |
| -5 | Cuba |
| -5 | Ecuador |
| -5 | Haiti |
| -5 | Jamaica |
| -5 | Mexico |
| -5 | Quintana Roo |
| -5 | Panama |
| -5 | Peru |
| -5 | United Kingdom |
| -5 | Cayman Islands |
| -5 | Turks and Caicos Islands |
| -5 | United States (Eastern Time Zone) |
| -5 | Alabama |
| -5 | Chambers, Lee, Macon, & Russel counties |
| -5 | Delaware |
| -5 | District of Columbia |
| -5 | Florida (except the counties of Bay, Calhoun, Escambia, Holmes, Jackson, Okaloosa, Santa Rosa, Walton, and Washington, and northern Gulf county (panhandle)) |
| -5 | Georgia |
| -5 | Indiana (except the northwestern counties of Jasper, Lake, LaPorte, Newton, Porter and Starke, and the southwestern counties of Gibson, Perry, Posey, Spencer, Vanderburgh and Warrick) |
| -5 | Kentucky |
| -5 | Counties located to the east of the counties of Breckinridge, Grayson, Hart, Green, Adair, Russell and Clinton |
| -5 | Maryland |
| -5 | Michigan (except the western counties of Dickinson, Gogebic, Iron and Menominee) |
| -5 | New England (states of Connecticut, Massachusetts, Maine, New Hampshire, Rhode Island and Vermont) |
| -5 | New Jersey |
| -5 | New York |
| -5 | North Carolina |
| -5 | Ohio |
| -5 | Pennsylvania |
| -5 | South Carolina |
| -5 | Tennessee |
| -5 | The counties of Scott, Morgan, Roane, Rhea, Meigs and Bradley, and all counties to the east of these |
| -5 | Virginia |
| -5 | West Virginia |
| -5 | United States Minor Outlying Islands |
| -5 | Navassa Island |
| -5 | New York |
| -5 | Lima |
| -5 | Toronto |
| -5 | Bogotá |
| -5 | Havana |
| -5 | Kingston |
| -4 | Antigua and Barbuda |
| -4 | Barbados |
| -4 | Bolivia |
| -4 | Brazil |
| -4 | The states of Amazonas (except westernmost municipalities), Mato Grosso, Mato Grosso do Sul, Rondônia and Roraima |
| -4 | Canada (Atlantic Time Zone) |
| -4 | New Brunswick |
| -4 | Newfoundland and Labrador |
| -4 | Labrador (except the area between L"Anse-au-Clair and Norman Bay) |
| -4 | Nova Scotia |
| -4 | Prince Edward Island |
| -4 | Quebec |
| -4 | East of the 63°W longitude |
| -4 | Chile (except Easter Island) |
| -4 | Denmark |
| -4 | Greenland |
| -4 | Pituffik (Thule) |
| -4 | Dominica |
| -4 | Dominican Republic |
| -4 | France |
| -4 | Guadeloupe |
| -4 | Martinique |
| -4 | Saint Barthélemy |
| -4 | Saint-Martin |
| -4 | Grenada |
| -4 | Guyana |
| -4 | Netherlands |
| -4 | Aruba |
| -4 | Caribbean Netherlands |
| -4 | Bonaire |
| -4 | Saba |
| -4 | Sint Eustatius |
| -4 | Curaçao |
| -4 | Sint Maarten |
| -4 | Paraguay |
| -4 | Saint Kitts and Nevis |
| -4 | Saint Lucia |
| -4 | Saint Vincent and the Grenadines |
| -4 | Trinidad and Tobago |
| -4 | United Kingdom |
| -4 | Anguilla |
| -4 | Bermuda |
| -4 | British Virgin Islands |
| -4 | Montserrat |
| -4 | United States (Atlantic Time Zone) |
| -4 | Puerto Rico |
| -4 | U.S. Virgin Islands |
| -4 | Venezuela |
| -4 | Santiago |
| -4 | Santo Domingo |
| -4 | Manaus |
| -4 | Caracas |
| -4 | La Paz |
| -4 | Halifax |
| -3.5 | Canada (Newfoundland Time Zone) |
| -3.5 | Newfoundland and Labrador |
| -3.5 | Labrador |
| -3.5 | The area between L"Anse-au-Clair and Norman Bay |
| -3.5 | Newfoundland |
| -3 | Argentina |
| -3 | Brazil (except the western states of Acre, Amazonas, Mato Grosso, Mato Grosso do Sul, Rondônia and Roraima; and offshore islands) |
| -3 | Denmark |
| -3 | Greenland (except areas around Pituffik (Thule), Danmarkshavn and Ittoqqortoormiit) |
| -3 | France |
| -3 | French Guiana |
| -3 | Saint-Pierre and Miquelon |
| -3 | Suriname |
| -3 | United Kingdom |
| -3 | Falkland Islands |
| -3 | Uruguay |
| -3 | São Paulo |
| -3 | Buenos Aires |
| -3 | Montevideo |
| -2 | Brazil |
| -2 | Fernando de Noronha |
| -2 | United Kingdom |
| -2 | South Georgia and the South Sandwich Islands |
| -1 | Cape Verde |
| -1 | Denmark |
| -1 | Greenland |
| -1 | Ittoqqortoormiit and surrounding area |
| -1 | Portugal |
| -1 | Azores islands |
| 0 | Burkina Faso |
| 0 | Côte d"Ivoire |
| 0 | Denmark |
| 0 | Faroe Islands |
| 0 | Greenland |
| 0 | Danmarkshavn and surrounding area |
| 0 | Gambia |
| 0 | Ghana |
| 0 | Guinea |
| 0 | Guinea-Bissau |
| 0 | Iceland |
| 0 | Ireland |
| 0 | Liberia |
| 0 | Mali |
| 0 | Mauritania |
| 0 | Portugal (Including Madeira and excluding Azores islands) |
| 0 | São Tomé and Príncipe |
| 0 | Spain |
| 0 | Canary Islands |
| 0 | Senegal |
| 0 | Sierra Leone |
| 0 | Togo |
| 0 | United Kingdom (Including Guernsey, Isle of Man, Jersey and Saint Helena, Ascension and Tristan da Cunha) |
| 0 | London |
| 0 | Accra |
| 0 | Dakar |
| 0 | Dublin |
| 0 | Lisbon |
| +1 | Albania |
| +1 | Algeria |
| +1 | Andorra |
| +1 | Angola |
| +1 | Austria |
| +1 | Belgium |
| +1 | Benin |
| +1 | Bosnia and Herzegovina |
| +1 | Cameroon |
| +1 | Central African Republic |
| +1 | Chad |
| +1 | Republic of the Congo |
| +1 | Democratic Republic of the Congo |
| +1 | Democratic Republic of the Congo(The provinces of Bandundu, Bas-Congo, Équateur and Kinshasa) |
| +1 | Croatia |
| +1 | Czech Republic |
| +1 | Denmark |
| +1 | Equatorial Guinea |
| +1 | France |
| +1 | Gabon |
| +1 | Germany |
| +1 | Hungary |
| +1 | Italy |
| +1 | Kosovo |
| +1 | Liechtenstein |
| +1 | Luxembourg |
| +1 | Macedonia |
| +1 | Malta |
| +1 | Monaco |
| +1 | Montenegro |
| +1 | Morocco |
| +1 | Netherlands |
| +1 | Niger |
| +1 | Nigeria |
| +1 | Norway (Including Svalbard and Jan Mayen) |
| +1 | Poland |
| +1 | San Marino |
| +1 | Serbia |
| +1 | Slovakia |
| +1 | Slovenia |
| +1 | Spain (Including Balearic Islands, Ceuta and Melilla and excluding Canary Islands) |
| +1 | Sweden |
| +1 | Switzerland |
| +1 | Tunisia |
| +1 | United Kingdom |
| +1 | Gibraltar |
| +1 | Vatican City |
| +1 | Western Sahara |
| +1 | Lagos |
| +1 | Kinshasa |
| +1 | Casablanca |
| +1 | Berlin |
| +1 | Rome |
| +1 | Paris |
| +1 | Madrid |
| +1 | Warsaw |
| +2 | Botswana |
| +2 | Bulgaria |
| +2 | Burundi |
| +2 | Cyprus |
| +2 | Democratic Republic of the Congo |
| +2 | Democratic Republic of the Congo (the provinces of Kasaï Occidental, Kasaï Oriental, Katanga, Maniema, Nord-Kivu, Orientale and Sud-Kivu) |
| +2 | Egypt |
| +2 | Estonia |
| +2 | Finland |
| +2 | Greece |
| +2 | Israel |
| +2 | Jordan |
| +2 | Latvia |
| +2 | Lebanon |
| +2 | Lesotho |
| +2 | Lithuania |
| +2 | Libya |
| +2 | Malawi |
| +2 | Moldova |
| +2 | Transnistria |
| +2 | Mozambique |
| +2 | Namibia |
| +2 | State of Palestine |
| +2 | Romania |
| +2 | Russia |
| +2 | Northwestern Federal District |
| +2 | Kaliningrad Oblast |
| +2 | Rwanda |
| +2 | South Africa |
| +2 | Sudan |
| +2 | Swaziland |
| +2 | Syria |
| +2 | Ukraine (except part of Donetsk and Luhansk regions, Crimea (occupied by Russia)) |
| +2 | United Kingdom |
| +2 | Akrotiri and Dhekelia |
| +2 | Zambia |
| +2 | Zimbabwe |
| +2 | Cairo |
| +2 | Khartoum |
| +2 | Johannesburg |
| +2 | Kiev |
| +2 | Bucharest |
| +2 | Jerusalem |
| +2 | Athens |
| +2 | Kaliningrad |
| +3 | Bahrain |
| +3 | Belarus |
| +3 | Comoros |
| +3 | Djibouti |
| +3 | Eritrea |
| +3 | Ethiopia |
| +3 | France |
| +3 | French Southern and Antarctic Lands |
| +3 | Scattesilver Islands in the Indian Ocean |
| +3 | Bassas da India, Europa Island and Juan de Nova Island |
| +3 | Mayotte |
| +3 | Georgia |
| +3 | Abkhazia and South Ossetia |
| +3 | Iraq |
| +3 | Kenya |
| +3 | Kuwait |
| +3 | Madagascar |
| +3 | Qatar |
| +3 | Russia – Moscow Time |
| +3 | Central Federal District |
| +3 | North Caucasian Federal District |
| +3 | Northwestern Federal District (except Kaliningrad Oblast) |
| +3 | Southern Federal District (except Astrakhan Oblast and Volgograd Oblast) |
| +3 | Volga Federal District (except Ulyanovsk Oblast, Samara Oblast, Saratov Oblast, Udmurtia, Bashkortostan, Orenburg Oblast and Perm Krai) |
| +3 | Saudi Arabia |
| +3 | Somalia |
| +3 | South Africa |
| +3 | Prince Edward Islands |
| +3 | South Sudan |
| +3 | Tanzania |
| +3 | Turkey |
| +3 | Uganda |
| +3 | Ukraine |
| +3 | Part of Donetsk and Luhansk regions, Crimea (occupied by Russia) |
| +3 | Yemen |
| +3 | Moscow |
| +3 | Istanbul |
| +3 | Riyadh |
| +3 | Baghdad |
| +3 | Nairobi |
| +3 | Minsk |
| +3 | Doha |
| +3.5 | Iran |
| +3.5 | Tehran |
| +4 | Armenia |
| +4 | Azerbaijan |
| +4 | France |
| +4 | French Southern and Antarctic Lands |
| +4 | Crozet Islands |
| +4 | Scattesilver Islands in the Indian Ocean |
| +4 | Glorioso Islands and Tromelin Island |
| +4 | Réunion |
| +4 | Georgia (except Abkhazia and South Ossetia) |
| +4 | Mauritius |
| +4 | Oman |
| +4 | Russia – Samara Time |
| +4 | Southern Federal District |
| +4 | Astrakhan Oblast |
| +4 | Volgograd Oblast |
| +4 | Volga Federal District |
| +4 | Samara Oblast, Saratov Oblast, Udmurtia and Ulyanovsk Oblast |
| +4 | Seychelles |
| +4 | United Arab Emirates |
| +4 | Dubai |
| +4 | Baku |
| +4 | Samara |
| +4.5 | Afghanistan |
| +4.5 | Kabul |
| +5 | Australia |
| +5 | Heard Island and McDonald Islands |
| +5 | France |
| +5 | French Southern and Antarctic Lands |
| +5 | Île Amsterdam |
| +5 | Île Saint-Paul |
| +5 | Kerguelen Islands |
| +5 | Kazakhstan |
| +5 | The provinces of Aktobe, Atyrau, Kyzylorda, Mangystau and West Kazakhstan |
| +5 | Maldives |
| +5 | Pakistan |
| +5 | Russia – Yekaterinburg Time |
| +5 | Ural Federal District |
| +5 | Volga Federal District |
| +5 | Bashkortostan, Orenburg Oblast and Perm Krai |
| +5 | Tajikistan |
| +5 | Turkmenistan |
| +5 | Uzbekistan |
| +5 | Karachi |
| +5 | Tashkent |
| +5 | Yekaterinburg |
| +5.5 | India |
| +5.5 | Sri Lanka |
| +5.5 | Delhi |
| +5.5 | Colombo |
| +5.75 | Nepal |
| +5.75 | Kathmandu |
| +6 | Bangladesh |
| +6 | Bhutan |
| +6 | Kazakhstan (except the provinces of Aktobe, Atyrau, Kyzylorda, Mangystau and West Kazakhstan) |
| +6 | Kyrgyzstan |
| +6 | Russia – Omsk Time |
| +6 | Siberian Federal District |
| +6 | Omsk Oblast |
| +6 | United Kingdom |
| +6 | British Indian Ocean Territory |
| +6 | Dhaka |
| +6 | Almaty |
| +6 | Omsk |
| +6.5 | Australia |
| +6.5 | Cocos (Keeling) Islands |
| +6.5 | Myanmar |
| +6.5 | Yangon |
| +7 | Australia |
| +7 | Christmas Island |
| +7 | Cambodia |
| +7 | Indonesia |
| +7 | Java, Sumatra, Riau Islands, West Kalimantan and Central Kalimantan |
| +7 | Laos |
| +7 | Mongolia |
| +7 | Western part, including Hovd |
| +7 | Russia – Krasnoyarsk Time |
| +7 | Siberian Federal District |
| +7 | Altai Krai |
| +7 | Altai Republic |
| +7 | Kemerovo Oblast |
| +7 | Khakassia |
| +7 | Krasnoyarsk Krai |
| +7 | Novosibirsk Oblast |
| +7 | Tomsk Oblast |
| +7 | Tuva |
| +7 | Thailand |
| +7 | Vietnam |
| +7 | Jakarta |
| +7 | Bangkok |
| +7 | Ho Chi Minh City |
| +7 | Krasnoyarsk |
| +8 | Australia (Western Australia (except Eucla)) |
| +8 | Brunei |
| +8 | China |
| +8 | Hong Kong |
| +8 | Indonesia |
| +8 | North Kalimantan, East Kalimantan, South Kalimantan, Lesser Sunda Islands and Sulawesi |
| +8 | Macau |
| +8 | Malaysia |
| +8 | Mongolia |
| +8 | Mongolia (Eastern part, including Ulaanbaatar) |
| +8 | Philippines |
| +8 | Russia – Irkutsk Time |
| +8 | Siberian Federal District |
| +8 | Buryatia |
| +8 | Irkutsk Oblast |
| +8 | Singapore |
| +8 | Taiwan |
| +8 | Shanghai |
| +8 | Hong Kong |
| +8 | Kuala Lumpur |
| +8 | Singapore |
| +8 | Taipei |
| +8 | Perth |
| +8 | Manila |
| +8 | Makassar |
| +8 | Irkutsk |
| +8.75 | Australia |
| +8.75 | Western Australia |
| +8.75 | Eucla |
| +9 | Indonesia |
| +9 | Maluku Islands |
| +9 | Papua and West Papua |
| +9 | Japan |
| +9 | North Korea |
| +9 | Palau |
| +9 | Russia |
| +9 | Far Eastern Federal District |
| +9 | Amur Oblast, Sakha Republic (western part; west of the Lena River as well as territories adjacent to the Lena on the eastern side) |
| +9 | Siberian Federal District |
| +9 | Zabaykalsky Krai |
| +9 | South Korea |
| +9 | Timor-Leste |
| +9 | Tokyo |
| +9 | Seoul |
| +9 | Pyongyang |
| +9 | Ambon |
| +9 | Yakutsk |
| +9.5 | Australia |
| +9.5 | Northern Territory |
| +9.5 | South Australia |
| +9.5 | New South Wales |
| +9.5 | Broken Hill |
| +9.5 | Adelaide |
| +10 | Australia |
| +10 | Australian Capital Territory |
| +10 | New South Wales (except Broken Hill) |
| +10 | Queensland |
| +10 | Tasmania |
| +10 | Victoria |
| +10 | Federated States of Micronesia |
| +10 | Western part |
| +10 | Papua New Guinea |
| +10 | All of the country except Autonomous Region of Bougainville |
| +10 | Russia – Vladivostok Time |
| +10 | Far Eastern Federal District |
| +10 | Primorsky Krai, Jewish Autonomous Oblast, Khabarovsk Krai, and Sakha Republic (central part; east of 140 degrees longitude and including the Abyysky, Allaikhovsky, Momsky, Nizhnekolymsky, and Ssilvernekolymsky districts) |
| +10 | United States |
| +10 | Guam |
| +10 | Northern Mariana Islands |
| +10 | Sydney |
| +10 | Port Moresby |
| +10 | Vladivostok |
| +10.5 | Australia |
| +10.5 | New South Wales |
| +10.5 | Lord Howe Island |
| +11 | Australia |
| +11 | Norfolk Island |
| +11 | Federated States of Micronesia |
| +11 | Eastern part |
| +11 | France |
| +11 | New Caledonia |
| +11 | Papua New Guinea |
| +11 | Autonomous Region of Bougainville |
| +11 | Russia – Magadan Time |
| +11 | Far Eastern Federal District |
| +11 | Sakha Republic (eastern part; Oymyakonsky, Ust-Yansky, and Verkhoyansky districts), Magadan Oblast and Sakhalin Oblast |
| +11 | Solomon Islands |
| +11 | Vanuatu |
| +11 | Nouméa |
| +11 | Magadan |
| +12 | France |
| +12 | Wallis and Futuna |
| +12 | Fiji |
| +12 | Kiribati |
| +12 | Gilbert Islands |
| +12 | Marshall Islands |
| +12 | Nauru |
| +12 | New Zealand (except Chatham Islands) |
| +12 | Russia – Kamchatka Time |
| +12 | Far Eastern Federal District |
| +12 | Chukotka Autonomous Okrug and Kamchatka Krai |
| +12 | Tuvalu |
| +12 | United States |
| +12 | Wake Island |
| +12 | Auckland |
| +12 | Suva |
| +12 | Petropavlovsk-Kamchatsky |
| +12.75 | New Zealand |
| +12.75 | Chatham Islands |
| +13 | Kiribati |
| +13 | Phoenix Islands |
| +13 | New Zealand |
| +13 | Tokelau |
| +13 | Samoa |
| +13 | Tonga |
| +14 | Kiribati |
| +14 | Line Islands |