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.