私は自分のアプリケーションでFacebookの統合に取り組んでいます。Facebookのタイムゾーンをカスタム文字列に変換する方法
は、Facebookはインドのような形式で、ユーザーのタイムゾーンを返します。その
5.5
しかし、既存のタイムゾーンはフォーマット
+05:30
この変換のための任意の関数やアルゴリズムの提案でデータベースに保存されています。
ありがとうございました。
私は自分のアプリケーションでFacebookの統合に取り組んでいます。Facebookのタイムゾーンをカスタム文字列に変換する方法
は、Facebookはインドのような形式で、ユーザーのタイムゾーンを返します。その
5.5
しかし、既存のタイムゾーンはフォーマット
+05:30
この変換のための任意の関数やアルゴリズムの提案でデータベースに保存されています。
ありがとうございました。
これは少し長いですが、必要な場合は必要な先行ゼロなどを追加します。
$num = -5.5;
$res = ($num < 0 ? '-' : '+') . (abs($num) < 10 ? '0' : '') . abs((int)$num) . ':';
// --> -05:
$mins = round((abs($num) - abs((int)$num)) * 60);
// --> 30
$res .= ($mins < 10 ? '0' : '') . $mins;
echo $res;
// -05:30
簡単peasy($ = 5.5と仮定):
$tz = ($a > 0 ? '+' : '-') . ((int) $a) . ':' . (($a - (int)$a)*60)
最初のビットがあなたを取得 - 第二(INT)に$キャスト、または+記号(右/左タイムゾーン)を使用すると、小数部分を失います3番目のビットは最初に小数部分を取得します(私はそこにPHP関数があると確信していますが、基本的にはCから来ます:5.5 - (int)5.5 = 5.5 - 5 = 0.5)。小数部分は時間で表示されます(5.5時間は5時間30分です)ので、基本的には0.5 * 60分の分数が得られます。
編集:ここではクリーナー(ワンライナー)バージョンです:
が$time = sprintf("%+03d:%2d", (int)$a, abs($a-(int)$a)*60);
この1はかなり簡単です。
ありがとうso much.it本当に助けてくれるでしょう –
@ edioeの提案は、あなたが先のゼロを気にしないなら、もっと清潔です。 – inhan