Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

daytoday reports are always in the profile's time zone #7836

Closed
wants to merge 6 commits into from

Commits on Jan 15, 2023

  1. daytoday reports are always in the profile's time zone

    Midnight for the profile should always be at the start of the
    day (midnight) for the chart.
    bewest committed Jan 15, 2023
    Configuration menu
    Copy the full SHA
    fd189f0 View commit details
    Browse the repository at this point in the history
  2. pin start of day in profile's timezone

    This more closely mirrors logic in loopalyzer, as well as the intent from the
    surrounding code in reportclient.js.
    bewest committed Jan 15, 2023
    Configuration menu
    Copy the full SHA
    104909d View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2023

  1. ensure that report selected dates translate to profile timezone

    To illustrate the difference, I used chrome "sensors" feature to change my timezone to one that spans the dateline.
    
        > moment.tz('2023-01-19', 'America/Los_Angeles').endOf('day').format( )
        '2023-01-19T23:59:59-08:00'
        > moment.tz(moment('2023-01-19'), 'America/Los_Angeles').endOf('day').format( )
        '2023-01-18T23:59:59-08:00'
    
    The old code uses a string replacement, which is equivalent to the first
    test.  This causes the dates on the reports to be off by one, as well as
    risks the data wrapping around the dateline so it can't be seen.  For example,
    replacing "23:59:59" with "00:00:00" in the first example doesn't correctly
    wrap around the dateline.
    
    The patch introduces a way to parse the dates requested in the browser's
    time zone, and then translates them to the profile's timezone.  The
    difference is shown in the second example above.  With this change, the
    correct date label should be rendered, and the data should start at
    midnight without wrapping around the dateline.
    bewest committed Jan 18, 2023
    Configuration menu
    Copy the full SHA
    01750cf View commit details
    Browse the repository at this point in the history
  2. ensure timezones assigned once in daytoday reports

    This fixes the label on the days in the daytoday charts.  Passing a moment
    object that is already zoned prevents toLocaleDateString from reinterpreting
    the zone information when the date is already relative to the profile.
    
    This also ensures that the datefilter is adjusted to the profile's zone rather
    than truncating the time to the end or beginning of the day.  This should
    prevent incorrectly wrapping arounnd the dateline.
    bewest committed Jan 18, 2023
    Configuration menu
    Copy the full SHA
    8764b84 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2023

  1. experiments with tests

    bewest committed Jan 20, 2023
    Configuration menu
    Copy the full SHA
    12d32b7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1537eb2 View commit details
    Browse the repository at this point in the history