How to select quarters in a date field not the actual date?
I also could not find a widget that provides this functionality but I would stick to the date field.

You need 2 things:


A widget that allows you a selection like that.
A custom format for the display of your field's value. The default date format will not help here since PHP does not provide the quarter.


Keep in mind that the storage for the values will be a normal date but you could i. e. interpret "2017-01-01 00:00:00" as "Quarter 1 2017", "2017-04-01 00:00:00" as "Quarter 2 2017", etc.

You can find further information on how to create your widget and formatter here:


Widget: You can also take a look at the date_popup sub module of the date module.
Formatter