One of the principles of a good form is how quickly it can be filled out. If the date of birth field consists of three selects with a choice of day, month, and year, the entry speed is greatly reduced. The user is forced to scroll through large lists.
It's always faster to type the day and year than choose from lists. For months, there are only 12. It's not a hard list to select. So, text inputs are fine for the day and year, and for the month, you can use the select field.
A single date field is not the best solution because of formatting issues. The date format may vary from country to country. Unfortunately, a computer can't help either. The date of birth 12.4.1987 cannot be recognized automatically. The number 4 can be both day and month.
The datepicker is an awkward control for selecting dates that are not relevant to the current month. Forcing the user to scroll through several months, much fewer years, in a small calendar is always a bad choice.
There is a simple rule for the datepicker: the date selection should refer to the current month or at most to the previous and next month. For example, when you want to choose a convenient delivery date in the coming week. In that case, the datepicker is quite a good solution, especially if it is immediately visible to the user without additional clicks.
You can see many attempts and variations to come up with time controls. This includes choosing the hours and minutes with the select field. These are unusual controls that look like clocks. There are even sliders to select the time.
The simplest solution is to type the hours and minutes in two different input fields. Just text inputs. This is the fastest and most unambiguous way.