datetime_field
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2 (0)
- 4.1.8 (0)
- 4.2.1 (38)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (-1)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (23)
- 7.1.3.4 (0)
- What's this?
datetime_field(object_name, method, options = {})
public
Returns a text_field of type “datetime-local”.
datetime_field("user", "born_on") # => <input id="user_born_on" name="user[born_on]" type="datetime-local" />
The default value is generated by trying to call strftime with “%Y-%m-%dT%T” on the object’s value, which makes it behave as expected for instances of DateTime and ActiveSupport::TimeWithZone.
@user.born_on = Date.new(1984, 1, 12) datetime_field("user", "born_on") # => <input id="user_born_on" name="user[born_on]" type="datetime-local" value="1984-01-12T00:00:00" />
You can create values for the “min” and “max” attributes by passing instances of Date or Time to the options hash.
datetime_field("user", "born_on", min: Date.today) # => <input id="user_born_on" name="user[born_on]" type="datetime-local" min="2014-05-20T00:00:00.000" />
Alternatively, you can pass a String formatted as an ISO8601 datetime as the values for “min” and “max.”
datetime_field("user", "born_on", min: "2014-05-20T00:00:00") # => <input id="user_born_on" name="user[born_on]" type="datetime-local" min="2014-05-20T00:00:00.000" />
By default, provided datetimes will be formatted including seconds. You can render just the date, hour, and minute by passing include_seconds: false.
@user.born_on = Time.current datetime_field("user", "born_on", include_seconds: false) # => <input id="user_born_on" name="user[born_on]" type="datetime-local" value="2014-05-20T14:35" />