問題タブ [strtotime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - strtotime() が将来の時刻のみを生成するようにする
次の日付 (5-1 など) を見つけるための PHP スクリプトを作成しようとしています。しかし、それを 5-2 に入れるとstrtotime()、今年の日付になります。可能な限り次の日付を常に返すようにしたいだけです。どうすればこれを機能させることができますか?それが役立つ場合、私は codeigniter を使用しています。
編集:謙虚な魂が同じ問題に遭遇した場合、私が思いついたコードを次に示します。
php - PHPの日付の問題-strtotimeは想定どおりの出力をしませんか?
データベースにいくつかの空白のDATETIME値(0000-00-00 00:00:00)があります。
これらをstrtotimeで実行すると、FALSEではなく「1263247058」が返されます。これは、リンクされたページの情報に従って実行する必要があります。
どうして?
ありがとう。
php - DOMDocument要素からstrtotimeを使用して日付を変換します
curlを使用してHTMLファイルをフェッチした後、DOMDocumentを使用して一部のデータを解析しています。コードは次のようになります
$varstrtotimeを使用してタイムスタンプに変換できません。理由はわかりません。必要な$cols->item(1)->nodeValue値が返されたことはわかっています。それを調べて別の変数に内破しようとしましたが、strtotimeを使用してタイムスタンプに変換することはできません。また、値を直接テストしました
strtotime('11 Jan 2010');
タイムスタンプが返されました。では、どうすればよいですか?
php - タイムスタンプでmysqlの「LIKE」構文を使用するには?
特定の日に送信された行をユーザーがデータベースで検索できるようにしたいと考えています。日付は素晴らしい関数を使用してデータベースのフィールドに入力されますdate()が、phpstrtotime関数を使用すると、もちろん日付はまったく同じではありません。
これに役立つ賢いmysql関数はありますか?
php - PHP strtotime() はユーロ形式を想定しているようです
PHP の strtotime() メソッドを使用して、フォームの日付フィールドを受け入れています。「明日」、「次の木曜日」、または (おそらく) 任意の日付表現を受け入れて、Unix タイムスタンプに変換する方法で、その強力さが気に入っています。
それはうまく機能しています - 昨日まで。誰かが「2-4-10」と入力すると、2010 年 2 月 4 日ではなく、2002 年 4 月 10 日と記録されました。そのため、MDY ではなく YMD が必要でした。
2 桁の年を使用しているだけに問題があるのではないかと思い、「2-4-2010」で再試行しました。これは 2010 年 4 月 2 日の記録です。その時点で、 strtotime() が何をしているのか理解できません。PHP.net は、米国英語の日付形式を想定していると述べています。では、なぜ DMY を想定するのでしょうか。
これを回避する方法はありますか?それとも strtotime() の使用をやめる必要がありますか?
注:私はちょうど今テストをしました。ハイフン/ダッシュの代わりにスラッシュを使用すると、2/4/10 でも問題なく動作します。なぜそれが問題なのですか?それだけなら、フォーム入力を strtotime() に渡す前に str_replace("-", "/", $input) を実行するだけでよいでしょうか?
php - PHP - mktimeまたはstrtotime?
2010-02 を 2010 年 2 月に変換しようとしていますが、1969 年 12 月になり続けています。
mktime、strtotime、およびその 2 つの組み合わせを使用してみましたが、まだ実行できませんでした...
これは私が最近試したことです...
php - phpなぜ2分追加し続けるのですか?
それがデータベースから引き出されるとき、それは次のように出てきます:2010-02-28 10:00:00
私はそれをフォーマットしています(はい、クエリでそれを行う方が良いことは知っていますが、現在そのオプションはありません):
しかし、何があっても、次のように出力されます。2010年2月28日日曜日10:02 AM
なぜそれがそれらの2分を追加しているのか考えていますか?
php - php strtotimeの問題、間違った値を与える?
私はこのコードを持っています:
ところで、私はすでに設定しました
結果は次のとおりです。2010 年 4 月 5 日、3 日が欠落しています。なぜそれが起こるのですか?それらは strtotime のバグだと聞きましたか? その場合、正しいものを取得するにはどうすればよいですか?つまり、これを置き換える別の方法はありますか:
php - strtotime で日付をオーストラリア (つまり、英国) 形式で解析する方法: dd/mm/yyyy?
私はこれまでにこれに出くわしたことがないとは信じられません。
基本的に、人間が作成したテキスト ドキュメントのテキストを解析しています。解析する必要があるフィールドの 1 つは日付と時刻です。私はオーストラリアにいるので、日付は次のようにフォーマットされていますが、米国でフォーマットされた日付として解析したいだけですdd/mm/yyyy。strtotimeまた、/前述したように、これらのドキュメントは手書きであり、一部のドキュメントはd M yy.
複数の組み合わせを試しましsetlocaleたが、何を試しても、言語は常に米国英語に設定されています。
ここで setlocale が重要であることは間違いありませんが、適切なコードを見つけることができないようです。これらを試しました:
- au
- アウエン
- en_AU
- オーストラリア
- aus
他に試せることはありますか?
明確にするために:私はWindowsボックスを備えたIISで実行しています。
本当にありがとう :)
イアン
例:
プロデュース
私はそれを生成したい:
私の解決策
私にとってははるかに読みやすい解決策であるため、ここで回答の1つにチェックマークを付けていますが、ここに私が思いついたものがあります:
ユーザーが入力した日付と一貫性があるとは限りませんので、正規表現をもう少し複雑にしました。
- 0 または 0 ~ 3 の 1 桁
- 0 から 9 までの 1 桁 -- はい、これは有効な日付として 37 に一致しますが、正規表現はすでに十分に大きいと思います!
- 空白の可能性があります
- 区切り文字 (「.」、「/」、または「 」)
- 空白の可能性があります
- また:
- 10 から 12 の間の数値または
- オプションで先頭に 0 を付けた 1 から 9 までの数値
- 空白の可能性があります
- 区切り文字 (「.」、「/」、または「 」)
- 空白の可能性があります
- また:
- 2 桁の数字 OR
- 4 桁の数字
うまくいけば、これは日付の書き方のほとんどのスタイルと一致します...