Provided by: libmojolicious-perl_9.31+dfsg-1_all bug

NAME

       Mojo::Date - HTTP date

SYNOPSIS

         use Mojo::Date;

         # Parse
         my $date = Mojo::Date->new('Sun, 06 Nov 1994 08:49:37 GMT');
         say $date->epoch;

         # Build
         my $date = Mojo::Date->new(time + 60);
         say "$date";

DESCRIPTION

       Mojo::Date implements HTTP date and time functions, based on RFC 7230
       <https://tools.ietf.org/html/rfc7230>, RFC 7231 <https://tools.ietf.org/html/rfc7231> and
       RFC 3339 <https://tools.ietf.org/html/rfc3339>.

ATTRIBUTES

       Mojo::Date implements the following attributes.

   epoch
         my $epoch = $date->epoch;
         $date     = $date->epoch(784111777);

       Epoch seconds, defaults to the current time.

METHODS

       Mojo::Date inherits all methods from Mojo::Base and implements the following new ones.

   new
         my $date = Mojo::Date->new;
         my $date = Mojo::Date->new('Sun Nov  6 08:49:37 1994');

       Construct a new Mojo::Date object and "parse" date if necessary.

   parse
         $date = $date->parse('Sun Nov  6 08:49:37 1994');

       Parse date.

         # Epoch
         say Mojo::Date->new('784111777')->epoch;
         say Mojo::Date->new('784111777.21')->epoch;

         # RFC 822/1123
         say Mojo::Date->new('Sun, 06 Nov 1994 08:49:37 GMT')->epoch;

         # RFC 850/1036
         say Mojo::Date->new('Sunday, 06-Nov-94 08:49:37 GMT')->epoch;

         # Ansi C asctime()
         say Mojo::Date->new('Sun Nov  6 08:49:37 1994')->epoch;

         # RFC 3339
         say Mojo::Date->new('1994-11-06T08:49:37Z')->epoch;
         say Mojo::Date->new('1994-11-06T08:49:37')->epoch;
         say Mojo::Date->new('1994-11-06T08:49:37.21Z')->epoch;
         say Mojo::Date->new('1994-11-06T08:49:37+01:00')->epoch;
         say Mojo::Date->new('1994-11-06T08:49:37-01:00')->epoch;

   to_datetime
         my $str = $date->to_datetime;

       Render RFC 3339 <https://tools.ietf.org/html/rfc3339> date and time.

         # "1994-11-06T08:49:37Z"
         Mojo::Date->new(784111777)->to_datetime;

         # "1994-11-06T08:49:37.21Z"
         Mojo::Date->new(784111777.21)->to_datetime;

   to_string
         my $str = $date->to_string;

       Render date suitable for HTTP messages.

         # "Sun, 06 Nov 1994 08:49:37 GMT"
         Mojo::Date->new(784111777)->to_string;

OPERATORS

       Mojo::Date overloads the following operators.

   bool
         my $bool = !!$date;

       Always true.

   stringify
         my $str = "$date";

       Alias for "to_string".

SEE ALSO

       Mojolicious, Mojolicious::Guides, <https://mojolicious.org>.