1

strtotime前方または後方にシフトする時間の文字列の説明、つまり「+1時間、15分」、「-2時間、45分」を使用して、いくつかの相対的なタイムスタンプを取得するために使用しています。

これは完全に機能します:

$ds = strtotime('02/20/11 09:30:00 -1 hour');

ただし、「-1時間15分」の場合strtotimeは、時間を引いてから15分を足したようです。

カンマで試しました:http://codepad.org/3dq7c2GM

私はここに来て、これについての前の質問を見て、コンマなしでそれを試しました:http: //codepad.org/G8gm8E84

まだ運がない。相対パラメータを使用してみました:http://codepad.org/nwZ9ZqOv 何もありません。

私は自分自身の解決策を見つけましたが、それはかなり直感的ではありません。何かが足りないのか、あるいはこれに間違ってアプローチしているのかはわかりません。動作するバージョンは次のようになります。

$ds = strtotime('02/20/11 09:30:00 -1 hour -15 minutes');

http://codepad.org/O89S3mCj

ここで何かが足りませんか?ドキュメントでは、この種の動作については言及されていません。また、文字列ベースの期間を使用してそのような相対タイムスタンプを取得するためのより良い方法はありますか?

編集

これらの文字列のソースを追加するために編集されました-それらはAJAXを介してユーザーインターフェースから来ています。表示フィールドの期間を15分間隔でインクリメント/デクリメントする+/-ボタンを備えたフォームコントロールがあります。それらが変更されると、AJAXリクエストはこれらの値をサーバーに送信し、を介してエポックタイムスタンプstrtotimeに変換され、データベースに保存されます。

4

3 に答える 3

2

私はこれまでその動作を観察したことがありませんが、おそらくそれは私が常に間隔を分に変換してきたためです。つまり、

$ds = strtotime('02/20/11 09:30:00 -75 minutes');
于 2011-02-17T15:52:03.473 に答える
0

あなたの時間はどこから来たのですか、それともその後どこで使いますか?これにSQLが含まれている場合は、MySQLの日付操作を使用できる可能性があります。

于 2011-02-17T15:53:14.637 に答える
0

それは非常に理にかなっています-結局のところ、それは通訳です。

<?php
$ds = strtotime('02/20/11 09:30:00 -1 hour, 15 minutes');
echo $ds."\n";
echo date('m/d/Y h:i:s a', $ds)."\n";
?>

その1つは1時間を短縮し、あなたの時間に15分を追加するので、15分が負になっている場合(あなたがしたように、それはあなたが望むようにそれをします)

私は個人的にstrtotimeを使用することは決してありません-私はエポック以来数秒で作業することを好みます:-)

于 2011-02-17T15:54:49.943 に答える