Feature #10544
closed
Added by Glass_saga (Masaki Matsushita) almost 10 years ago.
Updated about 8 years ago.
Description
Currently, we have to take an indirect way to get unix_time in milliseconds.
time = Time.now
milliseconds = (time.to_i * 1000) + (time.usec / 1000.0).round
I think it would be convenient if Time#to_i
accepts unit parameter like following.
time = Time.now
milliseconds = time.to_i(:millisecond)
Files
patch.diff (2.71 KB)
patch.diff |
Time#to_i(:millisecond) implementation |
Glass_saga (Masaki Matsushita), 11/26/2014 01:46 AM
|
|
- Description updated (diff)
Do you need unix time in milliseconds so often?
I want this feature to give unix time to other languages like JavaScript.
Some languages expect unix time in milliseconds.
How about a more general Time#to_i(scale=1)
?
Examples:
- Passing
1
for scale
(or passing nothing) would return seconds.
- Passing
1000
for scale
would return milliseconds.
- Passing
1/60r
for scale would return minutes.
Masaki Matsushita wrote:
milliseconds = (time.to_i * 1000) + (time.usec / 1000.0).round
IMHO, it is generally preferable to avoid time travel by truncating to the beginning of the "present" millisecond rather than possibly rounding to the beginning of the "future" millisecond.
- Status changed from Open to Rejected
We have Process.clock_gettime since Ruby 2.1.
% ruby -e 'p Process.clock_gettime(Process::CLOCK_REALTIME, :millisecond)'
1478362786099
This can be used as Time.now.to_i(:millisecond) which is shown in this issue.
If it is not enough, please reopen.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0