The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Time::Piece::Plus - Subclass of Time::Piece with some useful method

SYNOPSIS
      use Time::Piece::Plus;

      my $now = localtime();
      my $today = Time::Piece::Plus->today;

      #As class method
      my $today     = Time::Piece::Plus->today;
      my $yesterday = Time::Piece::Plus->yesterday;
      my $tomorrow  = Time::Piece::Plus->tomorrow;

      #As instance method
      my $time = Time::Piece::Plus->yesterday;
      my $two_days_ago = $time->yesterday;
      my $today = $time->tomorrow;

      #returns hour truncated object
      $time->truncate(to => 'day');

      #parse MySQL DATE
      my $gm_date    = Time::Piece::Plus->parse_mysql_date(str => "2011-11-26", as_localtime => 0);
      my $local_date = Time::Piece::Plus->parse_mysql_date(str => "2011-11-26", as_localtime => 1);
      #default is localtime
      my $local_date = Time::Piece::Plus->parse_mysql_date(str => "2011-11-26");

      #parse MySQL DATETIME
      my $gm_datetime    = Time::Piece::Plus->parse_mysql_datetime(str => "2011-11-26 23:28:50", as_localtime => 0);
      my $local_datetime = Time::Piece::Plus->parse_mysql_datetime(str => "2011-11-26 23:28:50", as_localtime => 1);
      #default is localtime
      my $datetime       = Time::Piece::Plus->parse_mysql_datetime(str => "2011-11-26 23:28:50");

      #calculete
      my $date = localtime();
      $date = $date->add(10);
      $date = $date->add(Time::Seconds->new(10);
      $date = $date->add(days => 1, hours => 12);
      $date = $date + 3600;

      $date = $date->subtract(10);
      $date = $date->subtract(Time::Seconds->new(10);
      $date = $date->subtrace(days => 1, hours => 12);
      $date = $date - 3600;
      $time_seconds = $date - Time::Piece::Plus->today;

DESCRIPTION
    Time::Piece::Plus is subclass of Time::Piece with some useful method.

METHODS
  today
    If called as a class method returns today. Also, if called as an
    instance method returns the day. And time is cut.

  yesterday
    If called as a class method returns yesterday. Also, if called as an
    instance method returns the previous day. And time is cut.

  tomorrow
    If called as a class method returns tomorrow. Also, if called as an
    instance method returns the next day. And time is cut.

  truncate
    Cut the smaller units than those specified. For example, "day" if you
    will cut the time you specify. 2011-11-26 02:13:22 -> 2011-11-26
    00:00:00 Each unit is a minimum cut.

  parse_mysql_date
    Parse MySQL DATE string like "YYYY-mm-dd". as_localtime is optional,
    default is 1.

  parse_mysql_datetime
    Parse MySQL DATETIME string like "YYYY-mm-dd HH:MM:SS". as_localtime is
    optional, default is 1.

  mysql_date
    Format MySQL DATE string like "YYYY-mm-dd". If you call a class method
    and returns the format today. Also, if called as an instance method
    returns the date and format of the instance.

  mysql_datetime
    Format MySQL DATE string like "YYYY-mm-dd HH:MM:SS". If you call a class
    method and returns the format now. Also, if called as an instance method
    returns the date and format of the instance.

  add(Int|Time::Seconds|Hash)
  subtract(Int|Time::Seconds|Time::Piece|Hash)
    Calculate and return new Time::Piece::Plus or Time::Seconds object using
    specified argument. If you specify Int, Time::Seconds or
    Time::Piece(::Plus)?, behavior is same as original Time::Piece. Operator
    overload is also available.

    If you specify Hash(not HashRef), behavior is similar to DateTime's
    these methods. But, they don't change object itself and returns new
    object. Available Hash keys are as follows, and Hash values are Int.

    seconds
    hours
    days
    months
    years

AUTHOR
    Nishibayashi Takuji <takuji {at} senchan.jp>

SEE ALSO
    Time::Piece,Time::Piece::MySQL,DateTime

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.