জন রেসিগের কিছু এখানে - http://ejohn.org/blog/javascript- ব্যাখ্যা date/
সম্পাদনা (6/27/2014): সুমুরাই 8 এর মন্তব্যে অনুসরণ করা - যদিও লিঙ্কযুক্ত পৃষ্ঠাটি এখনও কাজ করে pretty.js
তবে উপরের নিবন্ধটি থেকে লিঙ্কযুক্ত অংশটি এখানে দেওয়া হয়েছে :
pretty.js
function prettyDate(time) {
var date = new Date((time || "").replace(/-/g, "/").replace(/[TZ]/g, " ")),
diff = (((new Date()).getTime() - date.getTime()) / 1000),
day_diff = Math.floor(diff / 86400);
if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31) return;
return day_diff == 0 && (
diff < 60 && "just now" || diff < 120 && "1 minute ago" || diff < 3600 && Math.floor(diff / 60) + " minutes ago" || diff < 7200 && "1 hour ago" || diff < 86400 && Math.floor(diff / 3600) + " hours ago") || day_diff == 1 && "Yesterday" || day_diff < 7 && day_diff + " days ago" || day_diff < 31 && Math.ceil(day_diff / 7) + " weeks ago";
}
if (typeof jQuery != "undefined") jQuery.fn.prettyDate = function() {
return this.each(function() {
var date = prettyDate(this.title);
if (date) jQuery(this).text(date);
});
};
ব্যবহার:
prettyDate("2008-01-28T20:24:17Z")
prettyDate("2008-01-27T22:24:17Z")
prettyDate("2008-01-26T22:24:17Z")
prettyDate("2008-01-14T22:24:17Z")
prettyDate("2007-12-15T22:24:17Z")
ব্যবহারের নিবন্ধ থেকে অংশ:
ব্যবহারের উদাহরণ
নিম্নলিখিত উদাহরণগুলিতে আমি সাইটের সমস্ত অ্যাঙ্কর তৈরি করি, যার একটি শিরোনাম রয়েছে যার একটি তারিখ রয়েছে, তাদের অভ্যন্তরীণ পাঠ্য হিসাবে সুন্দর তারিখ রয়েছে। অতিরিক্তভাবে, পৃষ্ঠাটি লোড হওয়ার পরে আমি প্রতি 5 সেকেন্ডে লিঙ্কগুলি আপডেট করতে থাকি।
জাভাস্ক্রিপ্ট সহ:
function prettyLinks(){
var links = document.getElementsByTagName("a");
for ( var i = 0; i < links.length; i++ )
if ( links[i].title ) {
var date = prettyDate(links[i].title);
if ( date )
links[i].innerHTML = date;
}
}
prettyLinks();
setInterval(prettyLinks, 5000);
JQuery সহ:
$("a").prettyDate();
setInterval(function(){ $("a").prettyDate(); }, 5000);
ফয়েজ: মূল কোড, বাগ ফিক্স এবং উন্নতিতে কিছু পরিবর্তন হয়েছে।
function prettyDate(time) {
var date = new Date((time || "").replace(/-/g, "/").replace(/[TZ]/g, " ")),
diff = (((new Date()).getTime() - date.getTime()) / 1000),
day_diff = Math.floor(diff / 86400);
var year = date.getFullYear(),
month = date.getMonth()+1,
day = date.getDate();
if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31)
return (
year.toString()+'-'
+((month<10) ? '0'+month.toString() : month.toString())+'-'
+((day<10) ? '0'+day.toString() : day.toString())
);
var r =
(
(
day_diff == 0 &&
(
(diff < 60 && "just now")
|| (diff < 120 && "1 minute ago")
|| (diff < 3600 && Math.floor(diff / 60) + " minutes ago")
|| (diff < 7200 && "1 hour ago")
|| (diff < 86400 && Math.floor(diff / 3600) + " hours ago")
)
)
|| (day_diff == 1 && "Yesterday")
|| (day_diff < 7 && day_diff + " days ago")
|| (day_diff < 31 && Math.ceil(day_diff / 7) + " weeks ago")
);
return r;
}