Utilizzando strftime
, è possibile ottenere il numero di secondi e aggiungere millisecondi frazionari (o unità più piccole, se necessario):
2.2.2 :001 > t = Time.new
=> 2015-06-02 12:16:56 -0700
2.2.2 :002 > t.strftime('%s%3N')
=> "1433272616888"
Nota però che questo non rotonda, si tronca, come si può vedere con to_f
o se si va fuori a microsecondi:
2.2.2 :003 > t.to_f
=> 1433272616.888615
2.2.2 :004 > t.usec
=> 888615
e la soluzione to_f
/to_i
ha lo stesso problema:
2.2.2 :009 > (t.to_f * 1000).to_i
=> 1433272616888
quindi se davvero a cuore la precisione millisecondo, una scommessa migliore potrebbe essere to_f
con round
:
2.2.2 :010 > (t.to_f * 1000).round
=> 1433272616889
Detto questo, come noted in the docs, "IEEE 754 doppio non è sufficientemente accurata per rappresentare il numero di nanosecondi dal momento che l'epoca", quindi se davvero veramente cura, considera to_r
invece di to_f
-
2.2.2 :011 > (t.to_r * 1000).round
=> 1433272616889
- anche se stai arrotondando solo di pochi millisecondi probabilmente stai bene.
fonte
2015-06-02 19:28:43
che non è una "funzione di jQuery", è semplicemente ECMAScript (JavaScript). Forse è quello che ha spinto il -1, un po 'severo. – RobG
Vedere anche http://stackoverflow.com/q/20001883/238886 –