20

私はばかげた質問をしますが、時間形式に問題がありました。PHP を使用し、MySQL db から日付/時刻を取得して、時間表示をフォーマットしようとしているので、12 時間形式に先頭のゼロ文字がありません。スペースは結構です..簡単ですね。おそらく...

私が望むスタイルは:6:00 PMNOT06:00 PM

$result[0][0]の値です"2013-06-06 18:00:00"

PHPコードは次のとおりです。

echo strftime('%I:%M %p', strtotime($result[0][0]));
//upper case "i" WORKS but has leading zero

私が必要だと思うPHPコードは次のとおりです。

echo strftime('%l:%M %p', strtotime($result[0][0]));
//Lower case "L" Provides no output

後者はphpマニュアルによると:(%l小文字の「L」)を使用すると、12時間形式で時間が表示され、1から12までの1桁の前にスペースがあります

しかし、この形式を使用すると、何も得られません!

私が間違っている単純なことは何ですか?

(うーん、面白いことに、上記のコードは StackOverflow 画面でまったく同じように見えますが、大文字の i と小文字の L を入力しています...実際、ここでは大文字の i --> "I" であり、ここでは小文字の L --> "l" ??) このフォントでは同じに見えますか??

4

4 に答える 4

4

あなたのコードに基づいて、先行ゼロを削除するためにこれも試します。

PHP の "g" は、先行ゼロなしで時間を表示します。

時間:<?= echo strftime("g:i:sa", strtotime($result['time'])); ?>

于 2015-06-10T16:54:44.567 に答える
1

以下の関数を使用して、strftime から先頭のゼロを取り除くことができます

       function strip_zeros_from_date( $marked_string="") {
        //remove the marked zero's 
        $no_zeros = str_replace('*0', '', $marked_string);
        //Remove Reaming
        $cleaned_string = str_replace('*', '', $no_zeros);
        return $cleaned_string;

        }
于 2014-04-02T18:06:27.823 に答える