4
私のコードで動的なTime.localで時間を作ろうとしています。毎月初めに渡す値はTime.local(2009、9、-1、0)です。 PHPでは、これは前の月の最後の日に時間を設定します。ルビーでは、私はちょうど "ArgumentError:範囲外の引数"を取得します。Rubyの日付引数が範囲外です
私は間違った方法などを使用していますか?ありがとう。
私のコードで動的なTime.localで時間を作ろうとしています。毎月初めに渡す値はTime.local(2009、9、-1、0)です。 PHPでは、これは前の月の最後の日に時間を設定します。ルビーでは、私はちょうど "ArgumentError:範囲外の引数"を取得します。Rubyの日付引数が範囲外です
私は間違った方法などを使用していますか?ありがとう。
Time
の代わりにDateTime
クラスを使用する必要があります。 (あなたはrequire 'date'
に持っているし、最初のactivesupport
宝石をインストールすることがあります。)
それははるかに汎用性Time
よりも、あなたがDateTime.civil(2009,9 - 1,-1,0)
で欲しいものだけでありません。
この日の-1を渡すと、2番目の引数からの月の最終日の日付が返されるため、現在の月から1を引く必要があります。
あなたがRailsにいる場合は、DateTime.civil(2009,9,1,0) - 1.day
を実行して、わかりやすいコードを得ることができます。
これは、現在の月の最終日に日付を設定します。 – jgre
はい: >> DateTime.civil(2009,9、-1) => Wed、30 Sep 2009 00:00:00 +0000 ほぼありました! – sebastyuiop
ああ、小さな間違いがありました。元の回答を編集します。 – mrueg