About PW-FieldtypeTime

Adds a fieldtype and Inputfield for MySQL TIME fields.

Category 1Field Types
Fieldtype modules that represent a data type used by fields.
Category 2Input Fields
Inputfield modules that provide a UI input widget in the ProcessWire admin.
Release StateStable
Should be safe for use in production environments. *
Authornetcarver
Module Version0.2.0
Class NameInputfieldTime
Compatibility2.5, 2.6, 2.7
Date AddedOctober 19, 2014
Last UpdatedOctober 30, 2016
Recommended ByNew recommendations may take up to 1 day to appear.

Instructions

This module's files should be placed in /site/modules/InputfieldTime/
How to install or uninstall modules

README

FieldtypeTime & InputfieldTime

Modules for ProcessWire that allow easy input of times in various formats. The value is stored in the DB as an SQL timefield with values between about +800:00:00 and -800:00:00 but the display and input format can be chosen by the user.

Supported Input/Display formats

The following input and display formats are supported.

  • 'HH24' Hours (0-24)
  • 'HH24MM' Hours (0-24) & minutes (00-59)
  • 'HH24MMSS' Hours (0-24), minutes (00-59) & seconds (00-59)
  • 'HHH' Hours (Integer 0-800)
  • 'HHHMM' Hours (0-800) & minutes (00-59)
  • 'HHHMMSS' Hours (0-800), minutes (00-59) & seconds (00-59)
  • 'MMM' Minutes (Integer)
  • 'SSS' Seconds (Integer)
  • 'MMSS' Minutes (00-59) & seconds (00-59).

The fieldtype will use the chosen format to work out if actual input is incomplete and try to autocomplete the missingparts. For example, if you have a field setup to HH24MM and only type '9' into the Inputfield the fieldtype will assume you mean '09:00' (that is, 9 in the morning) and use that as the final value.

You can configure if colons are to be used between parts in the displayed output. So you can choose between '0900' and'09:00'.

Comparison in selectors

If you wish to use a formatted time in a selector then you need to have the time in your selector string use the DBformatting of 'HH:MM:SS' as the comparison is done by the DB. You can use the date() function directly or you can usethe utility function formattedStringToTime()...

// For a value with Hours and Mins...
$selector_time_string = date('H:m:00', $time); // or...
$selector_time_string = FieldtypeTime::formattedStringToTime(date('H:m', $time), 'HH24MM');

It will often be easier to work with date() directly.

Comments

  • Jürgen

    Jürgen 2 years ago 10

    Very useful, but it would be better to allow empty fields. If no value is entered it always stores 00:00:00 as the value which is sometimes unwanted.

Post a Comment

Your e-mail is kept confidential and not included with your comment. Website is optional.