RWDE::Time

Class for performing time related queries. RWDE doesn't use any external perl libraries, instead it queries the database set up in the project configuration file.

fetch_time({ timestamp, interval })

Fetch a calculated date. Provided a timestamp and the desired interval the database will be queried and the resulting calculation returned back. An added bonus is that the standard sql for dates can be used here when passing your parameters.

For example, to return the timestamp representing 5 days for right now:

RWDE::Time->fetch_time({ timestamp => 'now()', interval => "5 days"});

fetch_difference({ start_stamp, stop_stamp })

Fetch the number of days elapsed between two dates. Provided a start and stop date return the number of full days that have passed between the two. An added bonus is that the standard sql for dates can be used here when passing your parameters.

Note the parameters can be formatted as timestamps but the method will cast them to dates anyway. If you are looking for the total elapsed time between two timestamps use fetch_exact_difference.

For example, to return how many days have passed since New Years 2008:

RWDE::Time->fetch_diff({ start_stamp => '01/01/2008 00:00:00', stop_stamp => 'now()' });

is_before({ start_stamp, stop_stamp })

Returns true if start_stamp is before stop_stamp, false otherwise

now()

Fetch the timestamp that currently represents exactly "now".

This is useful for timestamping events within the system, etc.

RWDE::Time->now() would returns a timestamp that conforms to your database default timestamp representation

days_passed

This is a macro to fetch_diff whereby the ending timestamp is always represented by the current date.

This simply returns back the number of days that have passed between the start stamp and the time when the method is executed.

format_date

Generate a time hash that represents the timestamp parameter.

The method parses through the timestamp and separates each of the timestamp components into a separate key. date, time, year, month, and day are all represented within the time hash

format_qdate

Generate a qdate from the passed in timestamp parameter.

format_rfc

Generate an RFC 822 formatted date from the passed in timestamp parameter.

RSS requires this specific RFC date formatting

format_human

Generate an arbitrary human readable date from the passed in timestamp parameter.

The returned date formating is: YYYY-MM-DD HH12:MI:SS TZ

extract_dow

Determine the day of week of a given timestamp parameter

db_format_timestamp

Take a database timestamp and make it look nice for humans to read.

This is for Postgres database which tack on a numeric timezone.