NAME
Time::Local::More - More functions for producing Unix epoch timestamp or localtime/gmtime tuple
VERSION
This document describes version 0.001 of Time::Local::More (from Perl distribution Time-Local-More), released on 2021-06-17.
SYNOPSIS
use Time::Local::More qw(
time_startofminute_local
time_startofminute_utc
localtime_startofminute
gmtime_startofminute
time_startofhour_local
time_startofhour_utc
localtime_startofhour
gmtime_startofhour
time_startofday_local
time_startofday_utc
localtime_startofday
gmtime_startofday
time_startofsaturday_local
time_startofsaturday_utc
localtime_startofsaturday
gmtime_startofsaturday
time_startofsunday_local
time_startofsunday_utc
localtime_startofsunday
gmtime_startofsunday
time_startofmonday_local
time_startofmonday_utc
localtime_startofmonday
gmtime_startofmonday
time_startofmonth_local
time_startofmonth_utc
localtime_startofmonth
gmtime_startofmonth
time_startoflastdayofmonth_local
time_startoflastdayofmonth_utc
localtime_startlastdayofofmonth
gmtime_startlastdayofofmonth
time_startoflastdayoflastmonth_local
time_startoflastdayoflastmonth_utc
localtime_startoflastdayoflastmonth
gmtime_startoflastdayoflastmonth
time_startofyear_local
time_startofyear_utc
localtime_startofyear
gmtime_startofyear
);
# you can import all using :all tag
my $epoch1 = 1623894635; # Thu Jun 17 08:50:35 2021 Asia/Jakarta
# Thu Jun 17 01:50:35 2021 UTC
# assuming we are in Asia/Jakarta
say time_startofday_local($epoch1); # => 1623862800
# = Thu Jun 17 00:00:00 2021 Asia/Jakarta
say time_startofday_utc($epoch1); # => 1623888000
# = Thu Jun 17 00:00:00 2021 UTC
DESCRIPTION
EARLY RELEASE: API MIGHT CHANGE.
Overview of the module:
The
*startof*
functionsThese functions basically "round" the time to the start of minute, hour, day, or so on. For example, "time_startofday_local" is basically equivalent to:
my @t = localtime(); # e.g. 1623894635 (Thu Jun 17 08:50:35 2021 Asia/Jakarta) $t[0] = 0; # zero the second $t[1] = 0; # zero the minute $t[2] = 0; # zero the hour Time::Local::timelocal_nocheck(@t); # convert back to epoch. result is 1623862800 (Thu Jun 17 00:00:00 2021 Asia/Jakarta)
or alternatively:
my $t = time(); my @t = localtime($t); $t - $t[0] - $t[1]*60 - $t[2]*3600;
Keywords: start of period, time rounding, truncating timestamp.
FUNCTIONS
time_startofminute_local
Usage:
my $time = time_startofminute_local( [ $time0 ] );
Return Unix epoch timestamp for start of minute at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofminute_utc
Usage:
my $time = time_startofminute_utc( [ $time0 ] );
Return Unix epoch timestamp for start of minute at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofminute
Usage:
localtime_startofminute( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of minute. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofminute
Usage:
gmtime_startofminute( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of minute. If $time0
is not specified, will default to current timestamp (time()
).
time_startofhour_local
Usage:
my $time = time_startofhour_local( [ $time0 ] );
Return Unix epoch timestamp for start of hour at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofhour_utc
Usage:
my $time = time_startofhour_utc( [ $time0 ] );
Return Unix epoch timestamp for start of hour at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofhour
Usage:
localtime_startofhour( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of hour. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofhour
Usage:
gmtime_startofhour( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of hour. If $time0
is not specified, will default to current timestamp (time()
).
time_startofday_local
Usage:
my $time = time_startofday_local( [ $time0 ] );
Return Unix epoch timestamp for start of day at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofday_utc
Usage:
my $time = time_startofday_utc( [ $time0 ] );
Return Unix epoch timestamp for start of day at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofday
Usage:
localtime_startofday( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of day. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofday
Usage:
gmtime_startofday( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of day. If $time0
is not specified, will default to current timestamp (time()
).
time_startofsaturday_local
Usage:
my $time = time_startofsaturday_local( [ $time0 ] );
Return Unix epoch timestamp for start of most recent past Saturday at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofsaturday_utc
Usage:
my $time = time_startofsaturday_utc( [ $time0 ] );
Return Unix epoch timestamp for start of most recent past Saturday at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofsaturday
Usage:
localtime_startofsaturday( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of most recent past Saturday. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofsaturday
Usage:
gmtime_startofsaturday( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of most recent past Saturday. If $time0
is not specified, will default to current timestamp (time()
).
time_startofsunday_local
Usage:
my $time = time_startofsunday_local( [ $time0 ] );
Return Unix epoch timestamp for start of most recent past Sunday at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofsunday_utc
Usage:
my $time = time_startofsunday_utc( [ $time0 ] );
Return Unix epoch timestamp for start of most recent past Sunday at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofsunday
Usage:
localtime_startofsunday( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of sunday. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofsunday
Usage:
gmtime_startofsunday( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of most recent past Sunday. If $time0
is not specified, will default to current timestamp (time()
).
time_startofmonday_local
Usage:
my $time = time_startofmonday_local( [ $time0 ] );
Return Unix epoch timestamp for start of most recent past Monday at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofmonday_utc
Usage:
my $time = time_startofmonday_utc( [ $time0 ] );
Return Unix epoch timestamp for start of most recent past Monday at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofmonday
Usage:
localtime_startofmonday( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of most recent past Monday. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofmonday
Usage:
gmtime_startofmonday( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of most recent past Monday. If $time0
is not specified, will default to current timestamp (time()
).
time_startofmonth_local
Usage:
my $time = time_startofmonth_local( [ $time0 ] );
Return Unix epoch timestamp for start of month at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofmonth_utc
Usage:
my $time = time_startofmonth_utc( [ $time0 ] );
Return Unix epoch timestamp for start of month at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofmonth
Usage:
localtime_startofmonth( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of month. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofmonth
Usage:
gmtime_startofmonth( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of month. If $time0
is not specified, will default to current timestamp (time()
).
time_startoflastdayofmonth_local
Usage:
my $time = time_startoflastdayofmonth_local( [ $time0 ] );
Return Unix epoch timestamp for start of last day of month at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startoflastdayofmonth_utc
Usage:
my $time = time_startoflastdayofmonth_utc( [ $time0 ] );
Return Unix epoch timestamp for start of last day of month at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startoflastdayofmonth
Usage:
localtime_startoflastdayofmonth( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of last day of month. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startoflastdayofmonth
Usage:
gmtime_startoflastdayofmonth( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of last day of month. If $time0
is not specified, will default to current timestamp (time()
).
time_startoflastdayoflastmonth_local
Usage:
my $time = time_startoflastdayoflastmonth_local( [ $time0 ] );
Return Unix epoch timestamp for start of last day of last month at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startoflastdayoflastmonth_utc
Usage:
my $time = time_startoflastdayoflastmonth_utc( [ $time0 ] );
Return Unix epoch timestamp for start of last day of last month at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startoflastdayoflastmonth
Usage:
localtime_startoflastdayoflastmonth( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of last day of last month. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startoflastdayoflastmonth
Usage:
gmtime_startoflastdayoflastmonth( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of last day of last month. If $time0
is not specified, will default to current timestamp (time()
).
time_startofyear_local
Usage:
my $time = time_startofyear_local( [ $time0 ] );
Return Unix epoch timestamp for start of year at local timezone. If $time0
is not specified, will default to current timestamp (time()
).
time_startofyear_utc
Usage:
my $time = time_startofyear_utc( [ $time0 ] );
Return Unix epoch timestamp for start of year at UTC. If $time0
is not specified, will default to current timestamp (time()
).
localtime_startofyear
Usage:
localtime_startofyear( [ $time0 ] ); # like output of localtime()
Return localtime() output for start of year. If $time0
is not specified, will default to current timestamp (time()
).
gmtime_startofyear
Usage:
gmtime_startofyear( [ $time0 ] ); # like output of gmtime()
Return gmtime() output for start of year. If $time0
is not specified, will default to current timestamp (time()
).
FAQ
Where are "startofweek" functions?
Use the "startofsunday" or "startofmonday" functions; since some people use Sunday as start of the week and some people use Monday.
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Time-Local-More.
SOURCE
Source repository is at https://github.com/perlancar/perl-Time-Local-More.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Time-Local-More
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
localtime()
and gmtime()
in perlfunc
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.