php函数以数字时钟格式显示时间

php函数以数字时钟格式显示时间,php,Php,我创建了一个php函数,以数字时钟格式返回时间。我的职能是 function get_hh_mm_ii($unsorted_time) { //return $unsorted_time; if ($unsorted_time == '00:00') { return 'x'; } elseif ($unsorted_time != '00:00') { $time = explode(":", $unsorted_time);

我创建了一个php函数,以数字时钟格式返回时间。我的职能是

function get_hh_mm_ii($unsorted_time) {
    //return $unsorted_time;
    if ($unsorted_time == '00:00') {
        return 'x';
    } elseif ($unsorted_time != '00:00') {

        $time = explode(":", $unsorted_time);
        $hh   = $time[0];
        $mm   = $time[1];

        //var_dump($hh/12); exit();

        if (($hh / 12) == 0) {
            $ii = 'am';

            return $hh . ':' . $mm . ' ' . $ii;

        } elseif (($hh / 12) == 1) {
            $ii = 'pm';
            $hh = $hh % 12;
            if ($hh == 0) {
                $hh == 12;
            }
            return $hh . ':' . $mm . ' ' . $ii;
        }
    }
}
当我试图传递值(02:03)或任何其他值时,它总是返回NULL。我使用var_dump检查了它的值

试试这个:

function get_hh_mm_ii($unsorted_time) {
    //return $unsorted_time;
    if ($unsorted_time == '00:00') {
        return 'x';
    } elseif ($unsorted_time != '00:00') {

        $time = explode(":", $unsorted_time);
        $hh   = $time[0];
        $mm   = $time[1];

        //var_dump($hh/12); exit();

        if ($hh < 12) {
            $ii = 'am';

            return $hh . ':' . $mm . ' ' . $ii;

        } else {
            $ii = 'pm';
            $hh = $hh - 12;
            if ($hh == 0) {
                $hh == 12;
            }
            return $hh . ':' . $mm . ' ' . $ii;
        }
    }
}
函数get_hh_mm_ii($unsorted_time){
//返回$unsorted_time;
如果($unsorted_time==“00:00”){
返回'x';
}elseif($unsorted_time!=“00:00”){
$time=explode(“:”,$unsorted_time);
$hh=$time[0];
$mm=$time[1];
//变量转储($hh/12);退出();
如果($hh<12){
$ii='am';
返回$hh.':'.$mm.'.$ii;
}否则{
$ii=‘pm’;
$hh=$hh-12;
如果($hh==0){
$hh==12;
}
返回$hh.':'.$mm.'.$ii;
}
}
}
问题是13和除12除以12以外的其他任何东西都不是一。

试试这个:

function get_hh_mm_ii($unsorted_time) {
    //return $unsorted_time;
    if ($unsorted_time == '00:00') {
        return 'x';
    } elseif ($unsorted_time != '00:00') {

        $time = explode(":", $unsorted_time);
        $hh   = $time[0];
        $mm   = $time[1];

        //var_dump($hh/12); exit();

        if ($hh < 12) {
            $ii = 'am';

            return $hh . ':' . $mm . ' ' . $ii;

        } else {
            $ii = 'pm';
            $hh = $hh - 12;
            if ($hh == 0) {
                $hh == 12;
            }
            return $hh . ':' . $mm . ' ' . $ii;
        }
    }
}
函数get_hh_mm_ii($unsorted_time){
//返回$unsorted_time;
如果($unsorted_time==“00:00”){
返回'x';
}elseif($unsorted_time!=“00:00”){
$time=explode(“:”,$unsorted_time);
$hh=$time[0];
$mm=$time[1];
//变量转储($hh/12);退出();
如果($hh<12){
$ii='am';
返回$hh.':'.$mm.'.$ii;
}否则{
$ii=‘pm’;
$hh=$hh-12;
如果($hh==0){
$hh==12;
}
返回$hh.':'.$mm.'.$ii;
}
}
}
问题是13和除12除以12以外的其他任何东西都不是一。

我只想做:

function get_hh_mm_ii($unsorted_time) {
  return date('g:i a', strtotime($unsorted_time));
}
我只想:

function get_hh_mm_ii($unsorted_time) {
  return date('g:i a', strtotime($unsorted_time));
}

也许我误解了这个问题,但是您只需要将
strotime
date
组合使用即可

<?php

function get_hh_mm_ii($unsorted_time) {
        return date("G\:H A", strtotime($unsorted_time));
}


print get_hh_mm_ii("9.21 pm") . PHP_EOL;
print get_hh_mm_ii("9:30 AM") . PHP_EOL;
print get_hh_mm_ii("02:03") . PHP_EOL;

?>

也许我误解了这个问题,但是您只需要将
strotime
date
组合使用即可

<?php

function get_hh_mm_ii($unsorted_time) {
        return date("G\:H A", strtotime($unsorted_time));
}


print get_hh_mm_ii("9.21 pm") . PHP_EOL;
print get_hh_mm_ii("9:30 AM") . PHP_EOL;
print get_hh_mm_ii("02:03") . PHP_EOL;

?>
函数startClock(){
让今天=新日期();
让h=today.getHours();
让m=today.getMinutes();
让s=today.getSeconds();
var d=today.getDay();
var day=today.getDay();
var dayarr=[“太阳”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”];
day=dayarr[天];
设ampm=h>=12?'PM':'AM';
h=h%12;
h=h?h:12;//小时“0”应该是“12”
m=m<10?'0'+m:m;
h=h<10?'0'+h:h;
s=s<10?'0'+s:s;
document.getElementById('ets-clock').innerHTML=
日+“”+h+:“+m+“”+ampm;
设t=setTimeout(startTime,500);
}
函数startClock(){
让今天=新日期();
让h=today.getHours();
让m=today.getMinutes();
让s=today.getSeconds();
var d=today.getDay();
var day=today.getDay();
var dayarr=[“太阳”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”];
day=dayarr[天];
设ampm=h>=12?'PM':'AM';
h=h%12;
h=h?h:12;//小时“0”应该是“12”
m=m<10?'0'+m:m;
h=h<10?'0'+h:h;
s=s<10?'0'+s:s;
document.getElementById('ets-clock').innerHTML=
日+“”+h+:“+m+“”+ampm;
设t=setTimeout(startTime,500);
}

然后进行一些调试。什么时候出错?然后进行一些调试。什么时候出错了?我不知道这是一个问题还是一个陈述,但是是的,
分隔时间对strotime很有效将任何英文文本datetime描述解析为Unix时间戳。我不知道这是一个问题还是一个语句,但是是的,
分隔时间对strotime很有效。-将任何英文文本datetime描述解析为Unix时间戳。
($hh/12)==0)
语句显示,如果变量/12为0,即低于12的任何内容在该检查中为0(除数)。大于或等于12的东西等于1(除数)。我实现的逻辑正确吗?虽然我的代码不正确。@rahussingh php>var_dump(07/12);浮动(0.58333)php>var_dump((07/12)==0);bool(false)
($hh/12)==0)
语句显示,如果变量/12为0,即低于12的任何值在该检查中都为0(除数)。大于或等于12的东西等于1(除数)。我实现的逻辑正确吗?虽然我的代码不正确。@rahussingh php>var_dump(07/12);浮动(0.58333)php>var_dump((07/12)==0);bool(false),而好的编写代码本身是可读的;你应该避免在回答问题时不加一两行文字,至少要解释一下你做了什么,知道吗?我很快会更新这个,下次记住这些,而好的代码本身是可读的;你应该避免在回答问题时不加一两句话,至少要解释一下你做了什么,知道吗?我会很快更新,下次记住这些