3

timeago ( http://timeago.yarp.com/ ) を使用しようとしていますが、PHP を使用して MYSQL からタイムスタンプを ISO-8601 に変換するソリューションを見つけました。

date('c',strtotime($TimeStamp));

最後にタイムゾーンオフセットを取得することを除いて、これは正常に機能します

2011-07-10T08:46:50-**05:00**

私が欲しいのは2011-07-10T08:46:50Z

誰かが解決策を持っているか、タイムゾーンオフセットを取得している理由を知っていますか?

4

5 に答える 5

8

MySQL で直接実行できます。

SELECT DATE_FORMAT(yourfield, '%Y-%m-%dT%H:%i:%s0Z')

呼び出しもありGET_FORMAT(datetime, 'iso')ますが、これは ISO 9075 のフォーマット文字列を返しますが、これはあなたが望むものではありません。8601 を直接実行しないため、フォーマット文字列を自分で作成する必要があります。

于 2011-07-11T19:04:58.740 に答える
3

「c」は、タイムゾーン オフセットを含む日付全体を返します。他のオプションを使用して手動でビルドする必要があります。これを試して:

$time_stamp = time();
echo date('o-m-N',$time_stamp)."T".date('H:i:s',$time_stamp)."Z";
于 2011-07-11T18:59:15.123 に答える
3

http://php.net/manual/en/class.datetime.php#datetime.constants.types

const string ISO8601 = "Y-m-d\TH:i:sO";

独自の形式を使用できます。

date('Y-m-d\TH:i:s\Z',strtotime($TimeStamp));
于 2014-09-23T05:45:49.340 に答える
1

別の方法:

substr(date('c',strtotime($Timestamp)),0,-6).'Z';

于 2016-10-10T23:53:43.710 に答える
1

シンプルなオープングラフ

 date('Y-m-d\TH:i', strtotime('2015/09/24 08:46:50))
于 2015-10-10T21:45:51.930 に答える