Meines Wissens kann man standardmäßig nicht feststellen, welche der Schaltflächen gedrückt wurde.
Ein möglicher Weg wäre vielleicht beim OnChange die aktuelle Mausposition zu prüfen, um rauszubekommen, welche Schaltfläche gedrückt wurde.
Abgesehen davon enthält dein aktueller Code logische Fehler:
1. Was passiert, wenn die Minute genau auf 0, 15, 30 oder 45 steht?
2. Wenn die Minute über 45 steht, stellst du die Minuten auf 0. Aber die Stunde bleibt unverändert.
Das kann zwar Absicht sein, aber als Anwender fände ich das nicht logisch.