2024-09-30 10:49:11 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
module Timestamps
|
2025-12-08 16:09:09 -05:00
|
|
|
MIN_TIMESTAMP = Time.zone.parse('1970-01-01').to_i
|
|
|
|
|
MAX_TIMESTAMP = Time.zone.parse('2100-01-01').to_i
|
|
|
|
|
|
2024-09-30 10:49:11 -04:00
|
|
|
def self.parse_timestamp(timestamp)
|
2025-12-08 16:09:09 -05:00
|
|
|
parsed = DateTime.parse(timestamp).to_time.to_i
|
|
|
|
|
|
|
|
|
|
parsed.clamp(MIN_TIMESTAMP, MAX_TIMESTAMP)
|
|
|
|
|
rescue StandardError
|
|
|
|
|
result =
|
2024-09-30 10:49:11 -04:00
|
|
|
if timestamp.to_s.length > 10
|
|
|
|
|
timestamp.to_i / 1000
|
|
|
|
|
else
|
|
|
|
|
timestamp.to_i
|
|
|
|
|
end
|
2025-12-08 16:09:09 -05:00
|
|
|
|
|
|
|
|
result.clamp(MIN_TIMESTAMP, MAX_TIMESTAMP)
|
2024-09-30 10:49:11 -04:00
|
|
|
end
|
|
|
|
|
end
|