NAME

BSON::Time - BSON type wrapper for date and time

VERSION

version v1.12.2

SYNOPSIS

use BSON::Types ':all';

bson_time();        # now
bson_time( $secs ); # floating point seconds since epoch

DESCRIPTION

This module provides a BSON type wrapper for a 64-bit date-time value in the form of milliseconds since the Unix epoch (UTC only).

On a Perl without 64-bit integer support, the value must be a Math::BigInt object.

ATTRIBUTES

value

A integer representing milliseconds since the Unix epoch. The default is 0.

METHODS

epoch

Returns the number of seconds since the epoch (i.e. a floating-point value).

as_iso8601

Returns the value as an ISO-8601 formatted string of the form YYYY-MM-DDThh:mm:ss.sssZ. The fractional seconds will be omitted if they are zero.

as_datetime

Loads DateTime and returns the value as a DateTime object.

as_datetime_tiny

Loads DateTime::Tiny and returns the value as a DateTime::Tiny object.

as_mango_time

Loads Mango::BSON::Time and returns the value as a Mango::BSON::Time object.

as_time_moment

Loads Time::Moment and returns the value as a Time::Moment object.

TO_JSON

Returns a string formatted by "as_iso8601".

If the BSON_EXTJSON option is true, it will instead be compatible with MongoDB's extended JSON format, which represents it as a document as follows:

If the BSON_EXTJSON environment variable is true and the BSON_EXTJSON_RELAXED environment variable is false, returns a hashref compatible with MongoDB's extended JSON format, which represents it as a document as follows:

{"$date" : { "$numberLong": "22337203685477580" } }

If the BSON_EXTJSON and BSON_EXTJSON_RELAXED environment variables are both true, then it will return a hashref with an ISO-8601 string for dates after the Unix epoch and before the year 10,000 and a $numberLong style value otherwise.

{"$date" : "2012-12-24T12:15:30.500Z"}
{"$date" : { "$numberLong": "-10000000" } }

OVERLOADING

Both numification (0+) and stringification ("") are overloaded to return the result of "epoch". Numeric comparison and string comparison are overloaded based on those and fallback overloading is enabled.

AUTHORS

COPYRIGHT AND LICENSE

This software is Copyright (c) 2020 by Stefan G. and MongoDB, Inc.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004