gpt4 book ai didi

ruby-on-rails - ruby /rails : Converting datetime to natural language (e. g。 2012 年 3 月 23 日至 "this Friday")

转载 作者:行者123 更新时间:2023-12-04 14:32:38 25 4
gpt4 key购买 nike

有没有人知道可以将日期时间值转换为更人性化的 gem、方法或代码片段,而无需创建一系列规则或在 View 中放置一堆逻辑?例如:如果今天是 3/19/2012,转换:

  • 2012 年 3 月 23 日至“本周五”
  • 2012/3/26 至“下周一”
  • 2012 年 3 月 31 日至“下周末”
  • 2012 年 4 月 15 日至“下个月”
  • 2012 年 3 月 15 日至“上周四”
  • 3/01/2011 至“去年”

  • 基本上,我正在寻找相反的 Chronic gem .更类似于 distance_of_time_in_words ,但有一个转折。我不想从数据库中获取日期并按原样显示它们,而是想让它们在向最终用户显示时更加人性化和相关。

    最佳答案

    这是一个小技巧,完全未完成且不优雅。但是 Ruby/Rails 的日期非常棒,范围非常完美,也许如果你没有找到 gem,这样的事情会让你开始:

    module HumanDate
    def date_difference_for_people (from, to)
    seconds_in_day = 24 * 60 * 60
    days_difference = ((to - from)/seconds_in_day).round
    case days_difference
    when -1
    "yesterday"
    when 0
    "today"
    when 1
    "tomorrow"
    when 2..days_left_in_week
    "this #{day_name(difference)}"
    when (days_left_in_week + 1)..(days_left_in_week + 7)
    "next week"
    when (days_left_in_week + 8)..days_left_in_month
    "later this month"
    else
    "later -- how much left to you :-)"
    end
    end

    def day_name(days_from_now)
    days_from_now.days_from_now.strftime("%A")
    end

    def days_left_in_month
    Time.now.end_of_month.day - Time.now.day
    end

    def days_left_in_week
    Time.now.end_of_week.day - Time.now.day
    end
    end

    关于ruby-on-rails - ruby /rails : Converting datetime to natural language (e. g。 2012 年 3 月 23 日至 "this Friday"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779244/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com