A simple jQuery date prettify plugin.
Include files:
<script src="/path/to/jquery.js"></script><!-- jQuery is required --> <script src="/path/to/prettydate.js"></script>
prettydate
attributeHTML:
<span prettydate>Jan 01 2014</span>
Demo:
data-*
attributeHTML:
<span prettydate data-date-format="YYYY.M.D h:m:s">2020.1.1 20:20:11</span>
Demo:
$.fn.prettydate
methodHTML:
<span class="prettydate">Nov 11 2011 11:11:11</span>
Javascript:
$(".prettydate").prettydate();
Demo:
HTML:
<p class="prettydate-add-options"></p>
Javascript:
$(".prettydate-add-options").prettydate({ date: (new Date()).getTime() + (24 * 60 * 60 * 1000) // Tomorrow });
Demo:
Setup with $("#target").prettydate(options)
, or global setup with $.fn.prettydate.setDefaults(options)
.
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-
, as in data-fast="true"
.
Name | Type | Default | Description |
---|---|---|---|
afterSuffix | string | "later" | |
beforeSuffix | string | "ago" | |
autoUpdate | boolean | false | Auto update the pretty date string after a duration. |
date | object / number / string | null | The target date for prettify. Allow date object, date number (milliseconds), valid date string, or custom date string with a date format. |
dateFormat | string | "YYYY-MM-DD hh:mm:ss" | "Y" for year, "M" for month, "D" for day, "h" for hour, "m" for minute, "s" for second. |
duration | number | 60000 | The duration milliseconds of the auto update action. |
messages | object | (as follows) | For each message, the first "%s" placeholder will be replaced with the date diff number, and the second "%s" placeholder will be replaced with the before or after suffix. |
Default messages:
{ second: "Just now", seconds: "%s seconds %s", minute: "One minute %s", minutes: "%s minutes %s", hour: "One hour %s", hours: "%s hours %s", day: "One day %s", days: "%s days %s", week: "One week %s", weeks: "%s weeks %s", month: "One month %s", months: "%s months %s", year: "One year %s", years: "%s years %s", // Extra yesterday: "Yesterday", beforeYesterday: "The day before yesterday", tomorrow: "Tomorrow", afterTomorrow: "The day after tomorrow" }
$("#target").prettydate("prettify")
.prettydate
instance from the element$("#target").prettydate("destroy")
.For example:
// zh-CN $.fn.prettydate.setDefaults({ afterSuffix: "后", beforeSuffix: "前", dateFormat: "YYYY-MM-DD hh:mm:ss", messages: { second: "刚刚", seconds: "%s秒%s", minute: "一分钟%s", minutes: "%s分钟%s", hour: "一小时%s", hours: "%s小时%s", day: "一天%s", days: "%s天%s", week: "一周%s", weeks: "%s周%s", month: "一个月%s", months: "%s个月%s", year: "一年%s", years: "%s年%s", yesterday: "昨天", beforeYesterday: "前天", tomorrow: "明天", afterTomorrow: "后天" } });
HTML:
<span class="prettydate-auto-update"></span>
JavaScript:
$(".prettydate-auto-update").prettydate({ autoUpdate: true, date: new Date(), duration: 1000 });
Demo: