Korzystanie strftime
można uzyskać liczbę sekund i dołączyć milisekund ułamkowych (lub mniejszych jednostek, w razie potrzeby):
2.2.2 :001 > t = Time.new
=> 2015-06-02 12:16:56 -0700
2.2.2 :002 > t.strftime('%s%3N')
=> "1433272616888"
Zauważ jednak, że to nie okrągła, to obcina, jak można zobaczyć z to_f
lub jeśli wychodzić do mikrosekund:
2.2.2 :003 > t.to_f
=> 1433272616.888615
2.2.2 :004 > t.usec
=> 888615
i roztwór to_f
/to_i
ma ten sam problem:
2.2.2 :009 > (t.to_f * 1000).to_i
=> 1433272616888
więc jeśli naprawdę dbać o dokładność milisekundy, lepiej postawić może być to_f
z round
:
2.2.2 :010 > (t.to_f * 1000).round
=> 1433272616889
Powiedział, że jak noted in the docs „IEEE 754 double nie jest wystarczająco dokładne, by reprezentować liczbę nanosekund od Epoki”, więc jeśli naprawdę naprawdę troska, rozważenia to_r
zamiast to_f
-
2.2.2 :011 > (t.to_r * 1000).round
=> 1433272616889
- chociaż jeśli zaokrąglasz tylko do milisekund, prawdopodobnie nic ci nie jest.
To nie jest "funkcją jQuery", to po prostu zwykły ECMAScript (JavaScript). Być może właśnie to spowodowało -1, ale ciężko. – RobG
Zobacz także http://stackoverflow.com/q/20001883/238886 –