how can I use getdate(...) excluding TZ.

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • FFMG

    how can I use getdate(...) excluding TZ.


    Hi,

    My timezone is GMT +2
    So when I do a
    $date = getdate( 0 );

    I get:

    $date =
    {
    ['seconds'] (integer) = 0
    ['minutes'] (integer) = 0
    ['hours'] (integer) = 2 //<-- Hour is not 0 but +2
    ['mday'] (integer) = 1
    ['wday'] (integer) = 4
    ['mon'] (integer) = 1
    ['year'] (integer) = 1970
    ['yday'] (integer) = 0
    ['weekday'] (string) = "Thursday"
    ['month'] (string) = "January"
    ['0'] (integer) = 0
    }

    I cannot do:
    $date = getdate( 0 - (2*3600) );
    as negative numbers are not accepted, (on the window server).

    So how can I do getdate( 0 ) and return the value without it been
    converted by the server TZ.
    Using setlocal(...) is also a bit of a Hacky kind of way of doing
    things.

    FFMG


    --

    'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
    (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
    (http://www.insurance-owl.com/other/car_rec.php)
    'Free URL redirection service' (http://urlkick.com/)
    ------------------------------------------------------------------------
    FFMG's Profile: http://www.httppoint.com/member.php?userid=580
    View this thread: http://www.httppoint.com/showthread.php?t=14320

    Message Posted via the webmaster forum http://www.httppoint.com, (Ad revenue sharing).

  • Chung Leong

    #2
    Re: how can I use getdate(...) excluding TZ.

    On May 2, 9:03 am, FFMG <FFMG.2py...@ no-mx.httppoint.co mwrote:
    Hi,
    >
    My timezone is GMT +2
    So when I do a
    $date = getdate( 0 );
    >
    I get:
    >
    $date =
    {
    ['seconds'] (integer) = 0
    ['minutes'] (integer) = 0
    ['hours'] (integer) = 2 //<-- Hour is not 0 but +2
    ['mday'] (integer) = 1
    ['wday'] (integer) = 4
    ['mon'] (integer) = 1
    ['year'] (integer) = 1970
    ['yday'] (integer) = 0
    ['weekday'] (string) = "Thursday"
    ['month'] (string) = "January"
    ['0'] (integer) = 0
    >
    }
    >
    I cannot do:
    $date = getdate( 0 - (2*3600) );
    as negative numbers are not accepted, (on the window server).
    >
    So how can I do getdate( 0 ) and return the value without it been
    converted by the server TZ.
    Using setlocal(...) is also a bit of a Hacky kind of way of doing
    things.
    >
    FFMG
    >
    --
    >
    'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
    (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
    (http://www.insurance-owl.com/other/car_rec.php)
    'Free URL redirection service' (http://urlkick.com/)
    ------------------------------------------------------------------------
    FFMG's Profile:http://www.httppoint.com/member.php?userid=580
    View this thread:http://www.httppoint.com/showthread.php?t=14320
    >
    Message Posted via the webmaster forumhttp://www.httppoint.c om, (Ad revenue sharing).
    getdate(time() - (2*3600)) perhaps?

    Comment

    • ZeldorBlat

      #3
      Re: how can I use getdate(...) excluding TZ.

      On May 2, 3:03 am, FFMG <FFMG.2py...@ no-mx.httppoint.co mwrote:
      Hi,
      >
      My timezone is GMT +2
      So when I do a
      $date = getdate( 0 );
      >
      I get:
      >
      $date =
      {
      ['seconds'] (integer) = 0
      ['minutes'] (integer) = 0
      ['hours'] (integer) = 2 //<-- Hour is not 0 but +2
      ['mday'] (integer) = 1
      ['wday'] (integer) = 4
      ['mon'] (integer) = 1
      ['year'] (integer) = 1970
      ['yday'] (integer) = 0
      ['weekday'] (string) = "Thursday"
      ['month'] (string) = "January"
      ['0'] (integer) = 0
      >
      }
      >
      I cannot do:
      $date = getdate( 0 - (2*3600) );
      as negative numbers are not accepted, (on the window server).
      >
      So how can I do getdate( 0 ) and return the value without it been
      converted by the server TZ.
      Using setlocal(...) is also a bit of a Hacky kind of way of doing
      things.
      >
      FFMG
      >
      --
      >
      'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
      (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
      (http://www.insurance-owl.com/other/car_rec.php)
      'Free URL redirection service' (http://urlkick.com/)
      ------------------------------------------------------------------------
      FFMG's Profile:http://www.httppoint.com/member.php?userid=580
      View this thread:http://www.httppoint.com/showthread.php?t=14320
      >
      Message Posted via the webmaster forumhttp://www.httppoint.c om, (Ad revenue sharing).
      Timestamps don't have a time zone -- they're always in GMT. So, when
      you say a timestamp of zero, that's Jan 1, 1970 0:00 GMT -- which,
      because your GMT offset is +2, is really Jan 1, 1970 02:00 in your
      timezone.

      What is it that you're trying to accomplish? Do you want the
      timestamp for midnight on Jan 1, 1970 in /your/ timezone? Try this:

      strtotime('Jan 1 2007');

      Comment

      • ZeldorBlat

        #4
        Re: how can I use getdate(...) excluding TZ.

        On May 2, 9:26 am, ZeldorBlat <zeldorb...@gma il.comwrote:
        On May 2, 3:03 am, FFMG <FFMG.2py...@ no-mx.httppoint.co mwrote:
        >
        >
        >
        Hi,
        >
        My timezone is GMT +2
        So when I do a
        $date = getdate( 0 );
        >
        I get:
        >
        $date =
        {
        ['seconds'] (integer) = 0
        ['minutes'] (integer) = 0
        ['hours'] (integer) = 2 //<-- Hour is not 0 but +2
        ['mday'] (integer) = 1
        ['wday'] (integer) = 4
        ['mon'] (integer) = 1
        ['year'] (integer) = 1970
        ['yday'] (integer) = 0
        ['weekday'] (string) = "Thursday"
        ['month'] (string) = "January"
        ['0'] (integer) = 0
        >
        }
        >
        I cannot do:
        $date = getdate( 0 - (2*3600) );
        as negative numbers are not accepted, (on the window server).
        >
        So how can I do getdate( 0 ) and return the value without it been
        converted by the server TZ.
        Using setlocal(...) is also a bit of a Hacky kind of way of doing
        things.
        >
        FFMG
        >
        --
        >
        'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
        (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
        (http://www.insurance-owl.com/other/car_rec.php)
        'Free URL redirection service' (http://urlkick.com/)
        ------------------------------------------------------------------------
        FFMG's Profile:http://www.httppoint.com/member.php?userid=580
        View this thread:http://www.httppoint.com/showthread.php?t=14320
        >
        Message Posted via the webmaster forumhttp://www.httppoint.c om, (Ad revenue sharing).
        >
        Timestamps don't have a time zone -- they're always in GMT. So, when
        you say a timestamp of zero, that's Jan 1, 1970 0:00 GMT -- which,
        because your GMT offset is +2, is really Jan 1, 1970 02:00 in your
        timezone.
        >
        What is it that you're trying to accomplish? Do you want the
        timestamp for midnight on Jan 1, 1970 in /your/ timezone? Try this:
        >
        strtotime('Jan 1 2007');
        Ooops -- should have been:

        strtotime('Jan 1 1970');

        Comment

        • FFMG

          #5
          Re: how can I use getdate(...) excluding TZ.


          Chung Leong;62646 Wrote:
          >
          getdate(time() - (2*3600)) perhaps?
          Yes that would work for the current time.

          But as mentioned in my OP that will not work for 1/1/1970
          you cannot do
          >$date = getdate( 0 - (2*3600) );
          >as negative numbers are not accepted, (on the window server).
          Regards.

          FFMG


          --

          'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
          (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
          (http://www.insurance-owl.com/other/car_rec.php)
          'Free URL redirection service' (http://urlkick.com/)
          ------------------------------------------------------------------------
          FFMG's Profile: http://www.httppoint.com/member.php?userid=580
          View this thread: http://www.httppoint.com/showthread.php?t=14320

          Message Posted via the webmaster forum http://www.httppoint.com, (Ad revenue sharing).

          Comment

          • FFMG

            #6
            Re: how can I use getdate(...) excluding TZ.


            ZeldorBlat;6265 9 Wrote:
            On May 2, 3:03 am, FFMG <FFMG.2py...@ no-mx.httppoint.co mwrote:
            Hi,

            My timezone is GMT +2
            So when I do a
            $date = getdate( 0 );

            I get:

            $date =
            {
            ['seconds'] (integer) = 0
            ['minutes'] (integer) = 0
            ['hours'] (integer) = 2 //<-- Hour is not 0 but +2
            ['mday'] (integer) = 1
            ['wday'] (integer) = 4
            ['mon'] (integer) = 1
            ['year'] (integer) = 1970
            ['yday'] (integer) = 0
            ['weekday'] (string) = "Thursday"
            ['month'] (string) = "January"
            ['0'] (integer) = 0

            }

            I cannot do:
            $date = getdate( 0 - (2*3600) );
            as negative numbers are not accepted, (on the window server).

            So how can I do getdate( 0 ) and return the value without it been
            converted by the server TZ.
            Using setlocal(...) is also a bit of a Hacky kind of way of doing
            things.

            FFMG

            --

            'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
            (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
            (http://www.insurance-owl.com/other/car_rec.php)
            'Free URL redirection service' (http://urlkick.com/)
            ------------------------------------------------------------------------
            FFMG's Profile:http://www.httppoint.com/member.php?userid=580
            View this thread:http://www.httppoint.com/showthread.php?t=14320

            Message Posted via the webmaster forumhttp://www.httppoint.c om, (Ad
            revenue sharing).
            >
            Timestamps don't have a time zone -- they're always in GMT. So, when
            you say a timestamp of zero, that's Jan 1, 1970 0:00 GMT -- which,
            because your GMT offset is +2, is really Jan 1, 1970 02:00 in your
            timezone.
            >
            What is it that you're trying to accomplish? Do you want the
            timestamp for midnight on Jan 1, 1970 in /your/ timezone? Try this:
            >
            strtotime('Jan 1 2007');
            My server is in the US with GMT+5 and I am working in GMT-2.
            One is a *nix machine, the other a Windows.

            I use a value of 0, (1/1/1970), to show that the date has not been
            set.
            The Unix Value is saved on the DB.
            So when I do if( $date == 0) then ... I know that the date has not been
            set.

            mktime(...) as a GMT function but
            getdate(...) does not.

            And in my case I often use the two to set date ranges, (so if a user
            registered on 1/1/1987 @ 12:33:20 I want to set the date on the DB as
            1/1/1987 @ 00:00:00).

            But because getdate(...) converts the dates sometimes it does not work
            as expected.
            For 1/1/1970 The date becomes 1/1/1969 19:00, (it works on the Unix
            Box).
            If the user registers between 0:00 and 05:00 they get access for the
            day, (and sometimes the month before), because they pay by the day, I
            don't want to cheat them.

            So what I want is when I use getdate(0) I will get just that, the
            1/1/1970 0:00:00, without having to worry about TZ.

            At the end of the day I want to be assured that the date I passed to
            getdate(...) is exactly the value that I passed, not a 'adjusted'
            server time.

            I hope I am making it a little clearer what I am using the dates for.

            FFMG


            --

            'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
            (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
            (http://www.insurance-owl.com/other/car_rec.php)
            'Free URL redirection service' (http://urlkick.com/)
            ------------------------------------------------------------------------
            FFMG's Profile: http://www.httppoint.com/member.php?userid=580
            View this thread: http://www.httppoint.com/showthread.php?t=14320

            Message Posted via the webmaster forum http://www.httppoint.com, (Ad revenue sharing).

            Comment

            • Chung Leong

              #7
              Re: how can I use getdate(...) excluding TZ.

              On May 2, 6:36 pm, FFMG <FFMG.2py...@ no-mx.httppoint.co mwrote:
              Chung Leong;62646 Wrote:
              >
              >
              >
              getdate(time() - (2*3600)) perhaps?
              >
              Yes that would work for the current time.
              >
              But as mentioned in my OP that will not work for 1/1/1970
              you cannot do
              >
              $date = getdate( 0 - (2*3600) );
              as negative numbers are not accepted, (on the window server).
              >
              Regards.
              >
              FFMG
              >
              --
              >
              'webmaster forum' (http://www.httppoint.com) | 'webmaster Directory'
              (http://www.webhostshunter.com/) | 'Recreation Vehicle insurance'
              (http://www.insurance-owl.com/other/car_rec.php)
              'Free URL redirection service' (http://urlkick.com/)
              ------------------------------------------------------------------------
              FFMG's Profile:http://www.httppoint.com/member.php?userid=580
              View this thread:http://www.httppoint.com/showthread.php?t=14320
              >
              Message Posted via the webmaster forumhttp://www.httppoint.c om, (Ad revenue sharing).
              Sorry. Wasn't reading carefully.

              As there is no GMT version of getdate(), I think you'll need to obtain
              each component of the date using gmdate().

              Comment

              Working...