How to create working hours functionality?

Hy guys, I’m trying to build an app where users can pick a time range, e.g. 9:00 am to 5:00 pm. I can’t seem to get it to work. I don’t want the dates to be visible, I only want the time. I would be glad if someone could help.

A couple questions:

  1. Are you trying to do this with the default date/time picker functionality? That input always frustrates me; you’re right that it doesn’t let you show just a time. I usually end up building something from scratch for this kind of feature.
  2. Are you trying to pick a time range from a list of time ranges, or identify a time range as in selecting the start and end times independently and uniquely?

I can tell you that for identifying a time/time range, I would probably use either a dropdown with a long list of times (text datatype) or several inputs, and then do a bit of calculation to generate the right date/time datatype when the user manually saves.

Thank you for your suggestion, I thought of building something from scratch, I just wanted to know whether there’s a way to do it differently.

Regarding the calculations to get the right date, how would I get a m and/or p.m? Thank you.

The way I did it was to make a dropdown with two static choices, AM or PM, and then had a boolean expression in the calculation for ‘Dropdown’s value contains pm :formatted as number’ where the format as number gives 12 for a yes and a 0 for a no.

One quirk of the way I did this is that I had to add -12 hours if the time selected was 12pm or 12am, I think because 12am technically has an hours component of 0. That’s the second :formatted as number operator in there.

image

There may be an easier way to do it but this didn’t take too long to put together. My Hours input allowed integers from 1-12 and the Minutes input allowed 0-59. You could do this with dropdowns for the hours/minutes as well, if you wanted to force intervals of 15 minutes for example. It would take some extra work to do, but you could even have one dropdown with a list of times (all in text format, e.g. ‘9:15 am’ for a dropdown entry) and do some fancy ‘split by’ and ‘convert to number’ operations to get the hour and minute components.

(I know another way to do this is to make a datatype for times. That seemed unnecessarily complicated to me considering how many possible times there are, but there may be good reasons for it in other apps that I just haven’t run into yet with my own.)

Thank you so much for this, I’d definitely try it out.

No problem. I was working on this just yesterday so it was still fresh

Oh, one thing I should have mentioned from the start - technically speaking, you could use the default date/time picker and just… cover the date portion with a shape or other opaque group. That would work. I didn’t go that route because I wanted more flexibility but it’s an option.

Oh, that’s great, I’ll try both, thanks again buddy.

This topic was automatically closed after 70 days. New replies are no longer allowed.