proger/datefmt

日期格式化单元。支持相对时间(如“1天前”),使用易于记忆的格式字符串(如“d#”代表天,“D__”代表其名称)并支持自然本地化。

dev-master 2015-02-13 10:38 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:27:54 UTC


README

DateFmt 是一个易于使用的(主要是单方法)区域感知的日期格式化类,支持国家日期/时间格式和相对时间(如“1天前”)。它专注于易于记忆的格式字符串(hello, date()strftime())。

[ 完整语法 & API ]

更新于2014年2月16日:修复了 AGO[] 中的多个错误,添加了一些注释并重新格式化了代码。还可能以 camelCase() 的方式调用 PascalCase() 方法,归功于神奇的 __call()。升级与旧版本完全兼容,因此强烈推荐。

功能

  1. 基本格式化:d#(天),d##(零填充),D_(“Mon”),D__(“Monday”),等。
  2. 相对时间:AGO[*] = 1分钟,2天前等。
  3. 相对精确:AGO[d.h] = 1天3小时前
  4. 相对简短:AGO-SHORT[d.h] = 1d 3h前
  5. 接近现在时使用相对时间,否则使用完整时间:AGO[t]IF-FAR[d##my] - 输出“3小时前”或如果时间戳在过去24小时内,则输出完整时间字符串(“03/23/2012”)
  6. 抑制“ago/after”:AGO[*]_ = 1天3小时

自然语言功能

  1. 分数(例如0.45小时前)被翻译成“半小时前”
  2. 使用“at”指示时间:[d#.m#.y##]AT h#:m## - 以英语输出“23.3.2012 at 13:23”或以俄语输出“23.3.2012 в 13:23”。请注意,即使语言不同,格式字符串也不需要更改
  3. 所有格形式(英语中不使用):发布于 AT[D__] = 发布于星期三 = Добавлено в среду - 与 Posted on D__ 进行比较,其中它将是“Добавлено в среда”(不是正确的词形)

用法

$your_timestamp = 158399691;                // => Wednesday, 08/01/1975
$formatted = DateFmt::Format('D__, d##my', $your_timestamp, 'ru');
// You could also call DateFmt::format().

第一个参数是格式字符串,第二个参数是时间戳(省略时为 time()),第三个参数是语言(省略时为 en)。

安装

Composer

Packagist 下的 proger/datefmt 可用。

Laravel 3

像往常一样,使用 Artisan

php artisan bundle:install datefmt

然后将其放入您的 application/bundles.php

'datefmt' => array(
  'autoloads' => array(
    'map' => array('DateFmt' => '(:bundle)/datefmt.php')
  )
)

现在,每当您在代码中引用 DateFmt 时,其类将被自动加载。

限制

  • 不支持嵌套规则:[...]?|AGO[s-d]IF-FAR[[d#my]AT h#m]
  • 不支持多个 IFAGO[d]IF>7[..]IF>21[..]IF>...
  • 不允许空 IFAGO[h] AGO[h]IF>0[]IF>3[ (AGO[d]_)](这将创建 11小时前74小时前(2天)