【问题标题】:URL convention for date range日期范围的 URL 约定
【发布时间】:2010-12-15 11:08:26
【问题描述】:

在友好 URL 中显示日期范围的公认惯例是什么?

例如,在时间跟踪应用程序中。我不想在 URL 中使用特定支付周期的数据库主键,而是使用更容易让用户区分的东西。

http://www.mytimesheet.com/11-1-2009-11-14-2009
http://www.mytimesheet.com/period-beginning-11-1-2009

这些似乎都没有削减它,但也许我只是过于挑剔了。

【问题讨论】:

  • 为什么这个 MVC 相关?
  • 不是特指,所以去掉标签。

标签: friendly-url date-range


【解决方案1】:

您是否考虑过 ISO 格式的日期,尤其是其紧凑形式:YYYYMMDD,那么应该有:

http://example.com/dates/20091101/20091131

具体来说,我认为没有任何接受的约定。

编辑:这也是关于路由的......

【讨论】:

  • 这似乎是我见过的最干净的解决方案,也是查询字符串之外最直接的解决方案。
  • +1。如果您愿意,也可以包含-s;如果您确实使用连字符,则应该始终使用 ISO8601 YYYY-MM-DD 排序。
【解决方案2】:

我会说这取决于你,但我喜欢这个想法

http://foo.com/bar/from/2008/
http://foo.com/bar/from/2008/10/
http://foo.com/bar/from/2008/10/02

或者,它可以与/between/2008/10/2009/10 之类的东西结合使用。

【讨论】:

  • 我更喜欢这种方法,因为它使地址更加“人类可读/可探索”
  • 我想提供一个替代偏好:http://foo.com/bar/from/2014-09-01/。它意味着类似于书面形式的日期。你会说这更具人类可读性吗?
【解决方案3】:

我会使用类似的东西:

http://www.mytimesheet.com/start/11-1-2009/end/11-14-2009

http://www.mytimesheet.com?start=11-1-2009&end=11-14-2009

但丹尼尔说,如果可能的话,您可以将其转换为帖子,以便完全隐藏它。

【讨论】:

    【解决方案4】:

    我个人认为这是最好发布的数据类型,而不是用于指定路线。

    (有时如果解决方案似乎以这种方式被破坏,那么可能是该方法不正确。)

    但是,如果您真的想指定日期,也许您应该考虑一种更容易在所有文化中以一致方式理解的格式,例如 yyyy-mmm-dd(例如 2009-nov-11)

    【讨论】:

    • POST 在这里似乎是一个非常糟糕的主意,因为它会破坏几乎任何类型的 UI 体验(没有书签,没有重新加载而没有烦人的弹出窗口,没有后退按钮)。 GET 查询对于......好吧,查询要好得多。仅在实际更改某些内容(例如更新数据库记录)时才使用 POST,不应允许这样做两次。
    • 也没有通过即时消息或电子邮件向朋友/同事/等发送 URL,这真的让我很烦恼。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多