NAME
DateTimeX::Moment - EXPERIMENTAL DateTime like interface for Time::Moment
SYNOPSIS
use
DateTimeX::Moment;
$dt
= DateTimeX::Moment->new(
year
=> 1964,
month
=> 10,
day
=> 16,
hour
=> 16,
minute
=> 12,
second
=> 47,
nanosecond
=> 500000000,
time_zone
=>
'Asia/Taipei'
,
);
$dt
= DateTimeX::Moment->from_epoch(
epoch
=>
$epoch
);
$dt
= DateTimeX::Moment->now;
# same as ( epoch => time() )
$year
=
$dt
->year;
$month
=
$dt
->month;
# 1-12
$day
=
$dt
->day;
# 1-31
$dow
=
$dt
->day_of_week;
# 1-7 (Monday is 1)
$hour
=
$dt
->hour;
# 0-23
$minute
=
$dt
->minute;
# 0-59
$second
=
$dt
->second;
# 0-61 (leap seconds!)
$doy
=
$dt
->day_of_year;
# 1-366 (leap years)
$doq
=
$dt
->day_of_quarter;
# 1..
$qtr
=
$dt
->quarter;
# 1-4
# all of the start-at-1 methods above have corresponding start-at-0
# methods, such as $dt->day_of_month_0, $dt->month_0 and so on
$ymd
=
$dt
->ymd;
# 2002-12-06
$ymd
=
$dt
->ymd(
'/'
);
# 2002/12/06
$mdy
=
$dt
->mdy;
# 12-06-2002
$mdy
=
$dt
->mdy(
'/'
);
# 12/06/2002
$dmy
=
$dt
->dmy;
# 06-12-2002
$dmy
=
$dt
->dmy(
'/'
);
# 06/12/2002
$hms
=
$dt
->hms;
# 14:02:29
$hms
=
$dt
->hms(
'!'
);
# 14!02!29
$is_leap
=
$dt
->is_leap_year;
# these are localizable, see Locales section
$month_name
=
$dt
->month_name;
# January, February, ...
$month_abbr
=
$dt
->month_abbr;
# Jan, Feb, ...
$day_name
=
$dt
->day_name;
# Monday, Tuesday, ...
$day_abbr
=
$dt
->day_abbr;
# Mon, Tue, ...
# May not work for all possible datetime, see the docs on this
# method for more details.
$epoch_time
=
$dt
->epoch;
$rhs
=
$dt
+
$duration_object
;
$dt3
=
$dt
-
$duration_object
;
$duration_object
=
$dt
-
$rhs
;
$dt
->set(
year
=> 1882 );
$dt
->set_time_zone(
'America/Chicago'
);
$dt
->set_formatter(
$formatter
);
BENCHMARK
author/benchmark.pl
:
new()
Benchmark: timing 100000 iterations of datetime, moment...
datetime: 4 wallclock secs ( 4.06 usr + 0.01 sys = 4.07 CPU) @ 24570.02/s (n=100000)
moment: 1 wallclock secs ( 0.62 usr + 0.01 sys = 0.63 CPU) @ 158730.16/s (n=100000)
Rate datetime moment
datetime 24570/s -- -85%
moment 158730/s 546% --
----------------------------------------
now()
Benchmark: timing 100000 iterations of datetime, moment...
datetime: 4 wallclock secs ( 4.38 usr + 0.01 sys = 4.39 CPU) @ 22779.04/s (n=100000)
moment: 1 wallclock secs ( 0.59 usr + 0.00 sys = 0.59 CPU) @ 169491.53/s (n=100000)
Rate datetime moment
datetime 22779/s -- -87%
moment 169492/s 644% --
----------------------------------------
from_epoch()
Benchmark: timing 100000 iterations of datetime, moment...
datetime: 4 wallclock secs ( 4.27 usr + 0.01 sys = 4.28 CPU) @ 23364.49/s (n=100000)
moment: 1 wallclock secs ( 0.63 usr + 0.00 sys = 0.63 CPU) @ 158730.16/s (n=100000)
Rate datetime moment
datetime 23364/s -- -85%
moment 158730/s 579% --
----------------------------------------
calculate()
Benchmark: timing 100000 iterations of datetime, moment...
datetime: 20 wallclock secs (20.30 usr + 0.04 sys = 20.34 CPU) @ 4916.42/s (n=100000)
moment: 1 wallclock secs ( 1.07 usr + 0.00 sys = 1.07 CPU) @ 93457.94/s (n=100000)
Rate datetime moment
datetime 4916/s -- -95%
moment 93458/s 1801% --
----------------------------------------
DESCRIPTION
TODO: write it
METHODS
TODO: write it
LICENSE
Copyright (C) karupanerura.
This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)
AUTHOR
karupanerura <karupa@cpan.org>