Ruby on Railsで2つのDateTimesの間の秒数を取得する方法
2023-09-29 09:09:32
質問
従業員のタイムトラッキングを行うコードを持っています。 これは、従業員がどれくらいの時間出勤したかを示すカウンターを作成します。
これは現在のコードです。
start_time = Time.parse(self.settings.first_clock_in)
total_seconds = Time.now - start_time
hours = (total_seconds/ 3600).to_i
minutes = ((total_seconds % 3600) / 60).to_i
seconds = ((total_seconds % 3600) % 60).to_i
これは問題なく動作します。 しかし、Timeが1970年から2038年の範囲に制限されているため、Timeの使用をすべてDateTimesに置き換えようとしています。 2つのDateTimesの間の秒数を取得する方法がわかりません。 引き算をすると有理数が得られますが、どのように解釈したらよいのかわかりません。
注:Ruby 1.9.2以降、Timeのハードリミットはなくなりました。しかし、Timeは1823-11-12から2116-02-20の間の値に対して最適化されています。
どのように解決するのですか?
2つのDateTimesを引き算すると、経過時間(日数)が返されるので、そうすればよいでしょう。
elapsed_seconds = ((end_time - start_time) * 24 * 60 * 60).to_i
関連
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み] Linux, Bashで、現在の時刻をEpochからの秒数で取得する。
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] 2つの日付の間の日数を求める
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み] PHPを使用して2つの日付の差を計算する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] 変更欄のRailsマイグレーション
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Railsコントローラからホスト名を取得する