{"action":"created","issue":{"url":"https://api.github.com/repos/TEAMMATES/teammates/issues/4990","repository_url":"https://api.github.com/repos/TEAMMATES/teammates","labels_url":"https://api.github.com/repos/TEAMMATES/teammates/issues/4990/labels{/name}","comments_url":"https://api.github.com/repos/TEAMMATES/teammates/issues/4990/comments","events_url":"https://api.github.com/repos/TEAMMATES/teammates/issues/4990/events","html_url":"https://github.com/TEAMMATES/teammates/pull/4990","id":140501079,"number":4990,"title":"Some tests cannot pass from 7AM to 8AM #4814","user":{"login":"YongJieYongJie","id":14101781,"avatar_url":"https://avatars.githubusercontent.com/u/14101781?v=3","gravatar_id":"","url":"https://api.github.com/users/YongJieYongJie","html_url":"https://github.com/YongJieYongJie","followers_url":"https://api.github.com/users/YongJieYongJie/followers","following_url":"https://api.github.com/users/YongJieYongJie/following{/other_user}","gists_url":"https://api.github.com/users/YongJieYongJie/gists{/gist_id}","starred_url":"https://api.github.com/users/YongJieYongJie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YongJieYongJie/subscriptions","organizations_url":"https://api.github.com/users/YongJieYongJie/orgs","repos_url":"https://api.github.com/users/YongJieYongJie/repos","events_url":"https://api.github.com/users/YongJieYongJie/events{/privacy}","received_events_url":"https://api.github.com/users/YongJieYongJie/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TEAMMATES/teammates/labels/s.Ongoing","name":"s.Ongoing","color":"6BC471"}],"state":"open","locked":false,"assignee":{"login":"wkurniawan07","id":7261051,"avatar_url":"https://avatars.githubusercontent.com/u/7261051?v=3","gravatar_id":"","url":"https://api.github.com/users/wkurniawan07","html_url":"https://github.com/wkurniawan07","followers_url":"https://api.github.com/users/wkurniawan07/followers","following_url":"https://api.github.com/users/wkurniawan07/following{/other_user}","gists_url":"https://api.github.com/users/wkurniawan07/gists{/gist_id}","starred_url":"https://api.github.com/users/wkurniawan07/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wkurniawan07/subscriptions","organizations_url":"https://api.github.com/users/wkurniawan07/orgs","repos_url":"https://api.github.com/users/wkurniawan07/repos","events_url":"https://api.github.com/users/wkurniawan07/events{/privacy}","received_events_url":"https://api.github.com/users/wkurniawan07/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2016-03-13T16:15:41Z","updated_at":"2016-03-14T03:58:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/TEAMMATES/teammates/pulls/4990","html_url":"https://github.com/TEAMMATES/teammates/pull/4990","diff_url":"https://github.com/TEAMMATES/teammates/pull/4990.diff","patch_url":"https://github.com/TEAMMATES/teammates/pull/4990.patch"},"body":"Fixes #4814 "},"comment":{"url":"https://api.github.com/repos/TEAMMATES/teammates/issues/comments/196128972","html_url":"https://github.com/TEAMMATES/teammates/pull/4990#issuecomment-196128972","issue_url":"https://api.github.com/repos/TEAMMATES/teammates/issues/4990","id":196128972,"user":{"login":"YongJieYongJie","id":14101781,"avatar_url":"https://avatars.githubusercontent.com/u/14101781?v=3","gravatar_id":"","url":"https://api.github.com/users/YongJieYongJie","html_url":"https://github.com/YongJieYongJie","followers_url":"https://api.github.com/users/YongJieYongJie/followers","following_url":"https://api.github.com/users/YongJieYongJie/following{/other_user}","gists_url":"https://api.github.com/users/YongJieYongJie/gists{/gist_id}","starred_url":"https://api.github.com/users/YongJieYongJie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YongJieYongJie/subscriptions","organizations_url":"https://api.github.com/users/YongJieYongJie/orgs","repos_url":"https://api.github.com/users/YongJieYongJie/repos","events_url":"https://api.github.com/users/YongJieYongJie/events{/privacy}","received_events_url":"https://api.github.com/users/YongJieYongJie/received_events","type":"User","site_admin":false},"created_at":"2016-03-14T03:58:54Z","updated_at":"2016-03-14T03:58:54Z","body":"@wkurniawan07 \r\nThanks so much for the detailed explanation.\r\n\r\nYou are right, my solution (i.e., additional conditional replacement) will cause problem if we ever add a placeholder for `${tomorrow}` because there is no way of distinguishing `${tomorrow}` from `${nexthour.date)` between UTC 2300-0000\r\n\r\nThe **root problem is** that we are **doing replacement in UTC time for a page that is rendered in the user's timezone**. So instead of:\r\n`.replace(TimeHelper.formatDate(now), \"${today}\")`,\r\nwe should be using something like:\r\n`.replace(todayInUserTimeZone, \"${today}\")`.\r\n\r\n(Also, I think shifting the time forward for one hour will only pass the problem to another timezone.)"}}