1

PHPプログラムをPythonに変換しています。どうやらMySQLdbは、真夜中からオフセットされた時間デルタとしてMySQL時間フィールドを返します。したがって、リテラル「08:00:00」(8:00 AM)を含むデータベースフィールドは28,800秒として返されます。この動作を確認する他の投稿をいくつか見つけましたが、必要なものを取得するのに役立つコードサンプルが見つかりません。

ログに記録されたイベントの日付と時刻を読み取り、経過した時間を確認する必要があります。

event_date = mysql_result[0] # datetime object
event_time = mysql_result[1] # timedelta object

now = datetime.now()         # datetime object
elapsed_minutes = ???        # need integer

docs.python.orgでdatetimeの長いドキュメントを読みましたが、datetimeとtimedeltaの値を取得し、現在の時刻と比較して、経過した分数(または秒)を整数として生成できませんでした。

答えがそこにない、または別のスタックオーバーフローポストにあると言っているのではありません。自分でそれを見つけて実装することに完全に失敗しているだけです。誰かが手を貸してくれませんか?

ありがとう。

4

1 に答える 1

2
In [82]: import datetime as dt
In [85]: now = dt.datetime.now()

In [129]: event_date = dt.date(2012,10,22)    
In [155]: event_date = dt.datetime(event_date.year, event_date.month, event_date.day)

In [130]: event_time = dt.timedelta(seconds = 28800)    
In [131]: event = event_date + event_time  

In [132]: elapsed = now - event
Out[132]: datetime.timedelta(0, 35008, 781476)    
In [133]: elapsed.total_seconds()
Out[133]: 35008.781476    
In [134]: elapsed.total_seconds() // 60
Out[134]: 583.0

total_secondsまたは、メソッドがないPython2.6では、次のようになります。

In [149]: (elapsed.days*24*60*60+elapsed.seconds+elapsed.microseconds/1e6)//60
Out[149]: 583.0
于 2012-10-22T21:52:24.820 に答える