Scripttip: Herausfinden ob ein Datum in einen bestimmen Zeitraum fällt

Häufig ist es nötig herauszufinden ob ein Datum oder eine Uhrzeit in einen bestimmten Zeitraum fällt.
In diesem Scripttip zeigen wir euch wie dies ganz einfach mit Ruby geprüft werden kann.

[ruby]
# Die nötigen Bibliothek einbinden
require ‚time‘

# Hier erstellen wir das zu prüfende Datum
pruef_datum = Time.parse ‚2010-09-06 08:00:00 +0100‘
# => Mon Sep 08 09:00:00 +0200 2010

# Das Anfangsdatum für den zu überprüfenden Zeitraum
anfangs_datum = Time.parse ‚2010-09-01 00:00:00 +0100‘
# => Wed Sep 01 01:00:00 +0200 2010

# Das Enddatum für den zu überprüfenden Zeitraum
end_datum = Time.parse ‚2010-09-10 00:00:00 +0100‘
# => Fri Sep 10 01:00:00 +0200 2010

# Nun können wir mittels "between?" abfragen ob das Prüfdatum in unserem Zeitraum befindet
pruef_datum.between? anfangs_datum,end_datum
# => true
[/ruby]

Verschiedene Datumsformate in Rails

Neben der sprachlichen Übersetzungen unterscheiden sich auch Datumsformate im internationalen Kontext. Daher wollen wir euch in unserem heutigen Script-Tip zeigen, wie ihr diese Einstellung innerhalb von Rails vornehmen könnt.

Dies könnt ihr in eure environment.rb eintragen.

[ruby]
meine_formate = {

:mein_format_1 => ‚%l %p, %b %d, %Y‘,

:mein_format_2 => ‚%l:%M %p, %B %d, %Y‘

}



ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(meine_formate)

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(meine_formate)

[/ruby]

Für euer angepasstes Format könnt ihr die zugelassenen Einstellungen, die auch für Ruby gelten, nutzen.
Ausschnitt aus der Ruby-Dokumentation:

[ruby]
%a – The abbreviated weekday name („Sun“)
%A – The full weekday name („Sunday“)
%b – The abbreviated month name („Jan“)
%B – The full month name („January“)
%c – The preferred local date and time representation
%d – Day of the month (01..31)
%H – Hour of the day, 24-hour clock (00..23)
%I – Hour of the day, 12-hour clock (01..12)
%j – Day of the year (001..366)
%m – Month of the year (01..12)
%M – Minute of the hour (00..59)
%p – Meridian indicator („AM“ or „PM“)
%S – Second of the minute (00..60)
%U – Week number of the current year,
starting with the first Sunday as the first
day of the first week (00..53)
%W – Week number of the current year,
starting with the first Monday as the first
day of the first week (00..53)
%w – Day of the week (Sunday is 0, 0..6)
%x – Preferred representation for the date alone, no time
%X – Preferred representation for the time alone, no date
%y – Year without a century (00..99)
%Y – Year with century
%Z – Time zone name
%% – Literal „%“ character
[/ruby]