2017-03-15 10 views
0

したがって、私が持っている日付は、年、月、日が含まれる0x750201です。0x750201を人間が判読可能な日付に変換する

私は日付に変換しJavascriptコード持っている:

function getYMD(n) { 
    // [y,m,d] 
    return [(((n >> 16) & 0xFF) + 1900), ((n >>> 8) & 0xFF), (n & 0xFF)]; 
} 

をしかし、私はそれがやっている何見当がつかないので、PHPにそれを翻訳することはできません、任意のアイデア?

0x750201 is 2017, 2, 1 
0x75020e is 2017, 2, 14 
+0

0xは、ヘキサを表します。日付は、ヘキサ数字として格納され、それらをビットとして使用しています。 &と>>はビットレベルの演算子です。私は、おそらくヘキサ数字として保存されているデフォルトの日付からの秒数を推測するでしょう? –

+1

あなたを混乱させる部分はありますか?唯一の障害は、PHPに '>>>'がないということですが、 '' 'に変更すると、とにかく同じ結果が返されます –

+0

なぜ20170301よりもその形式が優先されますか?ちょっと興味があるんだけど。 – RobG

答えて

0

ほらあ、おかげ@Jaromanda Xは、あなたがPHPでこれを行う可能性が実現しなかった。ここで

は、コードがどのように翻訳のいくつかの例です。

これは実際にうまくいきますが、助けてくれてありがとうございます。

function getYMD($n) { 
    // [y,m,d] 
    return [((($n >> 16) & 0xFF) + 1900), (($n >> 8) & 0xFF), ($n & 0xFF)]; 
} 
print_r(getYMD(0x750201)); 
関連する問題