Örneğin bir tarih saat nesnem olduğunu varsayalım DateTime.now. Saatleri ve dakikaları 0'a (gece yarısı) ayarlamak istiyorum. Bunu nasıl yapabilirim?
Örneğin bir tarih saat nesnem olduğunu varsayalım DateTime.now. Saatleri ve dakikaları 0'a (gece yarısı) ayarlamak istiyorum. Bunu nasıl yapabilirim?
Yanıtlar:
ActiveSupport sayesinde şunları kullanabilirsiniz:
DateTime.now.midnight
DateTime.now.beginning_of_day
VEYA
DateTime.now.change({ hour: 0, min: 0, sec: 0 })
# More concisely
DateTime.now.change({ hour: 0 })
now = DateTime.now
DateTime.new(now.year, now.month, now.day, 0, 0, 0, now.zone)
VEYA
now = DateTime.now
DateTime.parse(now.strftime("%Y-%m-%dT00:00:00%z"))
DateTime.new(now.year, now.month, now.day, 0,0,0, now.zone) != now.to_date.to_datetime
Nevermind, anladım. Yeni bir DateTime oluşturmanız gerekiyor:
DateTime.new(now.year, now.month, now.day, 0, 0, 0, 0)
DateTime.new(Time.now.year, Time.now.month, Time.now.day, 0, 0, 0)işe yarıyor.
now = DateTime.now
DateTime. İngiltere gibi gün ışığından yararlanma saatine sahip bir ülkede yaşıyorsanız can sıkıcı sorunlar yaşarsınız. Burada bir açıklamaya bakın. gist.github.com/pixeltrix/e2298822dd89d854444b
Uyarı : DateTime.now.midnightve DateTime.now.beginning_of_dayaynı değeri döndür (mevcut günün sıfır saati - gece yarısı, adından beklediğiniz gibi 24:00:00 döndürmez).
Bu nedenle, bunu gelecekte x gün gece yarısı hesaplamak için kabul edilen yanıtı kullanabilecek herkes için daha fazla bilgi olarak ekliyorum.
Örneğin, 14. gün gece yarısı sona ermesi gereken 14 günlük ücretsiz bir deneme:
DateTime.now.midnight + 14.days
14. günün sabahıdır ve 13.x günlük denemeye eşittir (x, kalan günün bölümüdür - şimdi öğlense, 13.5 günlük deneme).
Aslında bunu yapmanız gerekir:
DateTime.now.midnight + 15.days
14. gün gece yarısına kadar.
Bu nedenle beginning_of_day00:00:00 olduğu için hep kullanmayı tercih ediyorum . Gece yarısını kullanmak yanıltıcı / yanlış anlaşılabilir.
Sık sık kullanıyorsanız, tarih ayrıştırmasını iyileştirmek için bu mücevheri yüklemeyi düşünün:
https://github.com/mojombo/chronic
require 'chronic'
Chronic.parse('this 0:00')