这应该很容易,但我没有得到它。我希望收到小时:分钟,并返回小时:分钟:00:00:00格式的秒。以下是短暂的。有关最佳方法的建议吗?谢谢
<?php
function fixTime($t)
{
$a = explode(':', trim($t));
return ((count($a)==2) && ($h=$a[0]) && ($m=$a[1]) && ($h>=0) && ($m>=0) && ($h<=23) && ($m<=59))?$h.':'.$m.':00':'00:00:00';
}
echo(fixTime('23:33').'<br />');
echo(fixTime('05:00').'<br />');
echo(fixTime('5:00').'<br />');
?>
答案 0 :(得分:3)
strtotime功能可以帮助您:
function fixTime($t) {
return date('H:i:s', strtotime($t));
}
echo fixTime('23:33'); // 23:33:00
echo fixTime('05:00'); // 05:00:00
echo fixTime('5:00'); // 05:00:00
另外,请参阅date功能以获取可用的格式选项列表。
要验证这样简单的输入,正则表达式可能会有所帮助:
function fixTime($t) {
if (!preg_match('/^([01][0-9]|2[0-3]|[0-9]):[0-5][0-9]$/', $t)) {
return false;
}
return date('H:i:s', strtotime($t));
}
echo fixTime('23:33'); // 23:33:00
echo fixTime('33:33'); // false
if (fixTime('33:33') === false) {
// invalid date supplied
}