kozalo/russian-datetime

如果需要用俄语打印类似“12分钟前”的内容,请使用此类。

v1.1.0 2017-01-21 11:40 UTC

This package is auto-updated.

Last update: 2024-09-14 18:20:18 UTC


README

俄语用户

这个类是做什么的?为什么它是俄语的?嗯,可能是因为它的主要目的是输出类似“不到一分钟前”,“12分钟前”或“3周前”的文本。你经常遇到这样的情况吗?
你只需给它一个时间,它就会根据与当前时间的比较输出所需的字符串!这不是很棒吗?!

除此之外,它本质上只是标准DateTime类型的一个小型扩展。至少目前是这样的。
它还有一个方法可以输出可以直接用于MySQL的日期格式。

因此,你可以用四种方法创建它

  1. 使用构造函数,它接受TIMESTAMP,或者创建一个带有当前时间的对象。
  2. 静态方法 Now()
  3. 静态方法 CreateFromTimestamp([timestamp]) 完全等同于构造函数。
  4. 静态方法 CreateFromString(<字符串>) 使用 strtotime() 函数,并将得到的 TIMESTAMP 传递给构造函数。所以请参考该函数的文档或测试示例。

那么接下来呢?有三个方法

  1. GetTimestamp() 只返回 TIMESTAMP。
  2. GetDateForMysql() 返回的日期格式为:Y-m-j H:i:s
  3. GetDiffInRussian() 是主要方法,也是我们之所以创建这个类的原因。它以可读格式返回时间差(与当前时间相比)。

还有一个静态方法 GetCorrectDeclension(<数字>, <工作模式>)。它主要用于内部需求,但也许会用到。
它获取一个数字,并为其屈折词。工作模式可以是以下之一:"minutes""hours""days""weeks""months""years"。对于所有其他情况将返回 false。最终结果是一个类似于 5 hours 的字符串。

这个类就这么多功能 ¯(ツ)¯

作者:Leonid Kozarin (kozalo@yandex.ru)
© Kozalo.Ru, 2017

英文

如果你需要打印类似“12分钟前”的内容,则需要此类。

那么,你应该如何操作才能得到“12分钟前”这样的字符串?

  1. 创建一个实例。你可以使用接受时间戳的构造函数(如果你想获取当前时间戳,则可以省略参数)。另一种获取实例的方法是使用静态方法:Now()CreateFromTimestamp([timestamp])CreateFromString(<字符串>)。第二种方法与构造函数完全相同。最后一种使用 strtotime() 函数,并将结果传递给构造函数。请参阅测试示例。
  2. 只需调用 GetDiffInRussian() 方法即可获取字符串!这很简单,不是吗?

此外,你可能对 GetDateForMysql() 方法感兴趣。它返回的日期和时间格式为:Y-m-j H:i:s

还有一个方法,但我怀疑你永远不会用到它。主要用途是内部,它只是返回正确的屈折词。

作者:Leonid Kozarin (kozalo@yandex.ru)
© Kozalo.Ru, 2017