API:EPrints/Time

From EPrints Documentation
Revision as of 15:26, 16 December 2011 by Tdb01r (Talk | contribs)

Jump to: navigation, search

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.3, 3.2) | Revision Log | Before editing this page please read Pod2Wiki


NAME

EPrints::Time - Time and Date-related functions

User Comments


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
 

User Comments


DESCRIPTION

This package contains functions related to time/date functionality.

User Comments


FORMATS USED IN EPRINTS

User Comments


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.

User Comments


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.

User Comments


Epoch time

Time zone: UTC

Format: integer

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

User Comments


METHODS

User Comments


Parsing

User Comments


split_value

@t = split_value( $value )

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

User Comments


datetime_local

$time = datetime_local( @t )

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

User Comments


datetime_utc

$time = datetime_utc( @t )

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

User Comments


Formatting

User Comments


join_value

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

Return a time @t in internal format.

Returns undef if no parts are defined.

User Comments


local_datetime

($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.

User Comments


utc_datetime

($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.

User Comments


iso_date

$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.

User Comments


iso_datetime

$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.

User Comments


rfc822_datetime

$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.

User Comments


human_time

$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.

User Comments


human_delay

$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.

User Comments


Phrases

User Comments


month_label

$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.

User Comments


short_month_label

$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.

User Comments


Rendering

User Comments


render_date

$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
 

User Comments


render_short_date

$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
 

User Comments


COPYRIGHT

User Comments