Difference between revisions of "API:EPrints/Time"

From EPrints Documentation
Jump to: navigation, search
(New page: <!-- Pod2Wiki=_preamble_ This page has been automatically generated from the EPrints source. Any wiki changes made between the 'Pod2Wiki=*' and 'End of Pod2Wiki' comments will be lost. -...)
 
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
<!-- Pod2Wiki=_preamble_  
 
<!-- Pod2Wiki=_preamble_  
−
This page has been automatically generated from the EPrints source. Any wiki changes made between the 'Pod2Wiki=*' and 'End of Pod2Wiki' comments will be lost.
+
This page has been automatically generated from the EPrints 3.2 source. Any wiki changes made between the 'Pod2Wiki=*' and 'Edit below this comment' comments will be lost.
−
  -->{{Pod2Wiki}}{{API:Source|file=EPrints/Time.pm|package_name=EPrints::Time}}[[Category:API|Time]]<!-- End of Pod2Wiki -->
+
  -->{{API}}{{Pod2Wiki}}{{API:Source|file=perl_lib/EPrints/Time.pm|package_name=EPrints::Time}}[[Category:API|TIME]][[Category:API:EPrints/Time|TIME]]<div><!-- Edit below this comment -->
−
<!-- Pod2Wiki=head_name -->=NAME=
+
 
 +
 
 +
<!-- Pod2Wiki=_private_ --><!-- Pod2Wiki=head_name -->
 +
==NAME==
 
'''EPrints::Time''' - Time and Date-related functions  
 
'''EPrints::Time''' - Time and Date-related functions  
  
−
<!-- End of Pod2Wiki -->
+
<!-- Edit below this comment -->
−
<!-- Pod2Wiki=head_description -->=DESCRIPTION=
+
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_synopsis -->
 +
==SYNOPSIS==
 +
<source lang="perl">($year) = EPrints::Time::utc_datetime()
 +
# 2010
 +
 
 +
($year,$month) = EPrints::Time::local_datetime()
 +
# 2010, 6
 +
 
 +
EPrints::Time::iso_datetime();
 +
# 2008-05-15T14:40:24Z
 +
 
 +
EPrints::Time::iso_date()
 +
# 2010-06-23
 +
 
 +
EPrints::Time::month_label( $repo, 11 )
 +
# returns "November"
 +
 
 +
EPrints::Time::short_month_label( $repo, 11 )
 +
# returns "Nov"
 +
 
 +
EPrints::Time::render_date( $repo, "2001-01-12T00:00:00Z" )
 +
# returns XML containing 12 January 2001 00:00
 +
 
 +
EPrints::Time::render_short_date( $repo, "2001-01-12T00:00:00Z" )
 +
# returns XML containing 12 Jan 2001 00:00</source>
 +
 
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_description -->
 +
==DESCRIPTION==
 
This package contains functions related to time/date functionality.  
 
This package contains functions related to time/date functionality.  
  
−
<!-- End of Pod2Wiki -->
+
<!-- Edit below this comment -->
−
<!-- Pod2Wiki=item_render_date -->==render_date==
+
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_formats_used_in_eprints -->
 +
==FORMATS USED IN EPRINTS==
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_internal_format -->
 +
===Internal format===
 +
Time zone: UTC (database), server local time (embargoes)
 +
 
 +
Format: YYYY or YYYY-MM or YYYY-MM-DD or "YYYY-MM-DD hh" or "YYYY-MM-DD hh:mm" or "YYYY-MM-DD hh:mm:ss"
 +
 
 +
These are used in the database and when setting and getting values. They can contain any fractional part of a date time.
 +
 
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_iso_8601_style_date_times -->
 +
===ISO 8601-style date/times===
 +
Time zone: UTC
 +
 
 +
Format: YYYY-MM-DD or YYYY-MM-DDThh:mm:ssZ
 +
 
 +
These are primarily used in XML output where times that conform to the standard XSD date/time are required.
 +
 
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_epoch_time -->
 +
===Epoch time===
 +
Time zone: UTC
  
−
  $xhtml = EPrints::Time::render_date( $session, $datevalue )
+
Format: integer
  
−
Render the given date or date and time as a chunk of XHTML.
+
Time in seconds since system epoch. Used in the login tickets table and when performing date calculations.
  
−
The date given is in UTC but it will be rendered in the local offset.
+
<!-- Edit below this comment -->
  
−
<!-- End of Pod2Wiki -->
 
−
<!-- Pod2Wiki=item_gmt_off -->==gmt_off==
 
  
−
  $xhtml = EPrints::Time::gmt_off()
+
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_methods -->
 +
==METHODS==
 +
<!-- Edit below this comment -->
  
−
Render the current time offset in seconds. This just diffs gmtime and localtime.
 
  
−
<!-- End of Pod2Wiki -->
+
<!-- Pod2Wiki= -->
−
<!-- Pod2Wiki=item_get_month_label -->==get_month_label==
+
<!-- Pod2Wiki=head_parsing -->
 +
===Parsing===
 +
@t = split_value( $value )
 +
Splits internal or ISO format $value into years, months, days, hours, minutes, seconds.
  
−
  $label = EPrints::Time::get_month_label( $session, $monthid )
+
$time = datetime_local( @t )
 +
Returns local time @t as the number of seconds since epoch, where @t is years, months etc.
  
−
Return a UTF-8 string describing the month, in the current lanugage.
+
$time = datetime_utc( @t )
 +
Returns UTC time @t as the number of seconds since epoch, where @t is years, months etc.
 +
 
 +
<!-- Edit below this comment -->
 +
 
 +
 
 +
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_formatting -->
 +
===Formatting===
 +
$datetime = EPrints::Time::join_value( @t )
 +
Return a time @t in internal format.
 +
 
 +
Returns undef if no parts are defined.
 +
 
 +
($year,$mon,$day,$hour,$min,$sec) = EPrints::Time::local_datetime( [ $seconds ] )
 +
Returns the local date-time as an array, see {{API:PodLink|file=perlfunc|package_name=perlfunc|section=localtime|text=perlfunc/localtime}}.
 +
 
 +
$seconds is seconds since epoch or now if not given.
 +
 
 +
($year,$mon,$day,$hour,$min,$sec) = EPrints::Time::utc_datetime( [ $seconds ] )
 +
Returns the UTC date-time as an array, see {{API:PodLink|file=perlfunc|package_name=perlfunc|section=gmtime|text=perlfunc/gmtime}}.
 +
 
 +
$seconds is seconds since epoch or now if not given.
 +
 
 +
$date = EPrints::Time::iso_date( [ $seconds ] )
 +
Return a UTC date of the form YYYY-MM-DD.
 +
 
 +
$seconds is seconds since epoch or now if not given.
 +
 
 +
$datetime = EPrints::Time::iso_datetime( [ $seconds ] );
 +
Return a UTC date-time of the form YYYY-MM-DDTHH:MM:SSZ
 +
 
 +
$seconds is seconds since epoch or now if not given.
 +
 
 +
$datetime = EPrints::Time::rfc822_datetime( [ $seconds ] )
 +
Return the local date-time in RFC 822 format (used by e.g. RSS).
 +
 
 +
$seconds is seconds since epoch or now if not given.
 +
 
 +
$timestamp = EPrints::Time::human_time( [$time] )
 +
Return a string describing the current local date and time in the current locale's format, see {{API:PodLink|file=perlfunc|package_name=perlfunc|section=localtime|text=perlfunc/localtime}}.
 +
 
 +
$timestamp = EPrints::Time::human_delay( $hours );
 +
Returns a human readable amount of time.
 +
 
 +
$hours the number of hours representing the time you want to be human readable.
  
−
$monthid is an integer from 1 to 12.
+
<!-- Edit below this comment -->
  
−
<!-- End of Pod2Wiki -->
 
−
<!-- Pod2Wiki=item_get_date_array -->==get_date_array==
 
  
−
  ($year,$month,$day) = EPrints::Time::get_date_array( [$time] )
+
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_phrases -->
 +
===Phrases===
 +
$label = EPrints::Time::month_label( $repo, $monthid )
 +
Return a UTF-8 string describing the month, in the current lanugage.
  
−
Static method that returns the given time (in UNIX time, seconds  since 1.1.79) in an array.
+
$monthid is an integer from 1 to 12.
  
−
This is the local date not the UTC date.
+
$label = EPrints::Time::short_month_label( $repo, $monthid )
 +
Return a UTF-8 string of a short representation in month, in the current lanugage.
  
−
<!-- End of Pod2Wiki -->
+
$monthid is an integer from 1 to 12.
−
<!-- Pod2Wiki=item_get_iso_date -->==get_iso_date==
 
  
−
  $datestamp = EPrints::Time::get_iso_date( [$time] )
+
<!-- Edit below this comment -->
  
−
Method that returns the given time (in UNIX time, seconds  since 1.1.79) in the format used by EPrints and MySQL (YYYY-MM-DD).
 
  
−
This is the localtime date, not UTC.
+
<!-- Pod2Wiki= -->
 +
<!-- Pod2Wiki=head_rendering -->
 +
===Rendering===
 +
$xhtml = EPrints::Time::render_date( $repo, $value )
 +
Renders a [[API:EPrints/MetaField/Date|EPrints::MetaField::Date]] or [[API:EPrints/MetaField/Time|EPrints::MetaField::Time]] value in a human-friendly form in the current locale's time zone.
  
−
<!-- End of Pod2Wiki -->
+
Month names are taken from the current repository language.
−
<!-- Pod2Wiki=item_human_time -->==human_time==
 
  
−
  $timestamp = EPrints::Time::human_time( [$time] )
+
E.g.
  
−
Return a string describing the current local date and time in the current locale's format (see Perl's 'localtime).
+
<pre>  5 June 2010 10:35:12 +02:00
 +
  12 December 1912 # no time
 +
  1954 # no month/day</pre>
  
−
<!-- End of Pod2Wiki -->
+
$xhtml = EPrints::Time::render_short_date( $repo, $value )
−
<!-- Pod2Wiki=item_get_iso_timestamp -->==get_iso_timestamp==
+
Render a shorter form of [[API:EPrints/Time#render_date|render_date]].
  
−
  $timestamp = EPrints::Time::get_iso_timestamp( [$time] );
+
E.g.
  
−
Return a UTC timestamp of the form YYYY-MM-DDTHH:MM:SSZ
+
<pre>  05 Jun 2010 10:35:12
 +
  12 Dec 1912 # no time
 +
  1954 # no month/day</pre>
  
−
e.g. 2005-02-12T09:23:33Z
+
<!-- Pod2Wiki=head_copyright -->
 +
==COPYRIGHT==
 +
: Copyright 2000-2011 University of Southampton.
  
−
$time in seconds from 1970. If not defined then assume current time.
+
: This file is part of EPrints http://www.eprints.org/.
  
−
<!-- End of Pod2Wiki -->
+
: EPrints is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
−
<!-- Pod2Wiki=head_undocumented_methods -->=UNDOCUMENTED METHODS=
 
−
{{API:Undocumented Methods}}<!-- End of Pod2Wiki -->
 
−
<!-- Pod2Wiki=item_datestring_to_timet -->==datestring_to_timet==
 
  
−
<!-- End of Pod2Wiki -->
+
: EPrints is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
−
<!-- Pod2Wiki=item_get_date -->==get_date==
 
  
−
<!-- End of Pod2Wiki -->
+
: You should have received a copy of the GNU Lesser General Public License along with EPrints.  If not, see http://www.gnu.org/licenses/.
−
<!-- Pod2Wiki=item_get_month_label_short -->==get_month_label_short==
 
  
−
<!-- End of Pod2Wiki -->
+
<!-- Edit below this comment -->
−
<!-- Pod2Wiki=item_human_delay -->==human_delay==
 
  
−
<!-- End of Pod2Wiki -->
 
−
<!-- Pod2Wiki=item_render_short_date -->==render_short_date==
 
  
−
<!-- End of Pod2Wiki -->
+
<!-- Pod2Wiki= -->
−
<!-- Pod2Wiki=_postamble_ --><!-- End of Pod2Wiki -->
+
<!-- Pod2Wiki=_postamble_ -->
 +
<!-- Edit below this comment -->

Latest revision as of 09:56, 22 January 2013

EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects


API: Core API

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


NAME

EPrints::Time - Time and Date-related functions


SYNOPSIS

($year) = EPrints::Time::utc_datetime()
# 2010

($year,$month) = EPrints::Time::local_datetime()
# 2010, 6

EPrints::Time::iso_datetime(); 
# 2008-05-15T14:40:24Z

EPrints::Time::iso_date()
# 2010-06-23

EPrints::Time::month_label( $repo, 11 ) 
# returns "November"

EPrints::Time::short_month_label( $repo, 11 ) 
# returns "Nov"

EPrints::Time::render_date( $repo, "2001-01-12T00:00:00Z" ) 
# returns XML containing 12 January 2001 00:00

EPrints::Time::render_short_date( $repo, "2001-01-12T00:00:00Z" ) 
# returns XML containing 12 Jan 2001 00:00


DESCRIPTION

This package contains functions related to time/date functionality.


FORMATS USED IN EPRINTS

Internal format

Time zone: UTC (database), server local time (embargoes)

Format: YYYY or YYYY-MM or YYYY-MM-DD or "YYYY-MM-DD hh" or "YYYY-MM-DD hh:mm" or "YYYY-MM-DD hh:mm:ss"

These are used in the database and when setting and getting values. They can contain any fractional part of a date time.


ISO 8601-style date/times

Time zone: UTC

Format: YYYY-MM-DD or YYYY-MM-DDThh:mm:ssZ

These are primarily used in XML output where times that conform to the standard XSD date/time are required.


Epoch time

Time zone: UTC

Format: integer

Time in seconds since system epoch. Used in the login tickets table and when performing date calculations.


METHODS

Parsing

@t = split_value( $value )

Splits internal or ISO format $value into years, months, days, hours, minutes, seconds.

$time = datetime_local( @t )

Returns local time @t as the number of seconds since epoch, where @t is years, months etc.

$time = datetime_utc( @t )

Returns UTC time @t as the number of seconds since epoch, where @t is years, months etc.


Formatting

$datetime = EPrints::Time::join_value( @t )

Return a time @t in internal format.

Returns undef if no parts are defined.

($year,$mon,$day,$hour,$min,$sec) = EPrints::Time::local_datetime( [ $seconds ] )

Returns the local date-time as an array, see perlfunc/localtime.

$seconds is seconds since epoch or now if not given.

($year,$mon,$day,$hour,$min,$sec) = EPrints::Time::utc_datetime( [ $seconds ] )

Returns the UTC date-time as an array, see perlfunc/gmtime.

$seconds is seconds since epoch or now if not given.

$date = EPrints::Time::iso_date( [ $seconds ] )

Return a UTC date of the form YYYY-MM-DD.

$seconds is seconds since epoch or now if not given.

$datetime = EPrints::Time::iso_datetime( [ $seconds ] );

Return a UTC date-time of the form YYYY-MM-DDTHH:MM:SSZ

$seconds is seconds since epoch or now if not given.

$datetime = EPrints::Time::rfc822_datetime( [ $seconds ] )

Return the local date-time in RFC 822 format (used by e.g. RSS).

$seconds is seconds since epoch or now if not given.

$timestamp = EPrints::Time::human_time( [$time] )

Return a string describing the current local date and time in the current locale's format, see perlfunc/localtime.

$timestamp = EPrints::Time::human_delay( $hours );

Returns a human readable amount of time.

$hours the number of hours representing the time you want to be human readable.


Phrases

$label = EPrints::Time::month_label( $repo, $monthid )

Return a UTF-8 string describing the month, in the current lanugage.

$monthid is an integer from 1 to 12.

$label = EPrints::Time::short_month_label( $repo, $monthid )

Return a UTF-8 string of a short representation in month, in the current lanugage.

$monthid is an integer from 1 to 12.


Rendering

$xhtml = EPrints::Time::render_date( $repo, $value )

Renders a EPrints::MetaField::Date or EPrints::MetaField::Time value in a human-friendly form in the current locale's time zone.

Month names are taken from the current repository language.

E.g.

  5 June 2010 10:35:12 +02:00
  12 December 1912 # no time
  1954 # no month/day
$xhtml = EPrints::Time::render_short_date( $repo, $value )

Render a shorter form of render_date.

E.g.

  05 Jun 2010 10:35:12
  12 Dec 1912 # no time
  1954 # no month/day

COPYRIGHT

Copyright 2000-2011 University of Southampton.
This file is part of EPrints http://www.eprints.org/.
EPrints is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
EPrints is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with EPrints. If not, see http://www.gnu.org/licenses/.