I am making a timeline (spanning hours, not days/years) labelled with digital times (e.g. 1:15, 5:45, 3:00). Everything is calculated based on minutes. The problem I have is the o'clock times, where the minutes shows as zero, instead of a double zero:

Is there an easy way to do this, or is best to hard-code an if-then?
Here is the MWE (based on a numberline code from somewhere on this site, can't remember where):
\documentclass[10pt,oneside]{article}
\usepackage[margin=0.5in,a4paper,landscape]{geometry}
\usepackage{tikz}
\newcommand{\drawtimeline}[5]
{
\pgfmathsetmacro\starttime{#1*60+#2}
\pgfmathsetmacro\endtime{#3*60+#4}
\pgfmathsetmacro\timediff{\endtime-\starttime}
\pgfmathsetmacro\numticks{\timediff}
\pgfmathsetmacro\numlabels{\timediff/15}
\pgfmathsetmacro\intervallabel{#5/\numlabels}
\pgfmathsetmacro\intervaltick{#5/\numticks}
\pgfmathsetmacro\extraticks{\numticks+2}
\begin{tikzpicture}
%draw line
\draw [thick](-2*\intervaltick pt,0) -- (#5+2*\intervaltick pt,0);
%draw small ticks
\foreach \y in {-2,-1,..., \extraticks } {
\draw[thin, yshift=0 cm, xshift= \intervaltick * \y ] (0pt,+4pt) -- (0pt,-3pt);}
%draw big ticks and labels
\foreach \y
[evaluate=\y as \hrs using ({div(\y * 15 + \starttime,60)}]
[evaluate=\y as \mins using ({mod(\y * 15 +\starttime,60)}]
in {0,1,...,\numlabels}
{
\draw[yshift=-0.5 cm, xshift = \intervallabel * \y ] node[ below]{$\pgfmathprintnumber{\hrs}$:$\pgfmathprintnumber{\mins}$};
\draw[thick, yshift=0 cm, xshift= \intervallabel * \y ] (0pt,+8pt) -- (0pt,-8pt);}
\end{tikzpicture}
}
\begin{document}
\drawtimeline{5}{45}{6}{30}{25cm}
\end{document}
