Skip to content

Instantly share code, notes, and snippets.

@juji
Created June 18, 2014 02:12
Show Gist options
  • Save juji/86f3383385013de6b975 to your computer and use it in GitHub Desktop.
Save juji/86f3383385013de6b975 to your computer and use it in GitHub Desktop.
JS - MySQL timestamp to human readable
var dateToHuman = function(ds){
if(ds=='0000-00-00 00:00:00') return 'never';
ds = ds.replace(/\-/g,' ').replace(/\:/g,' ').split(' ');
var n = new Date();
var d = new Date(ds[0]*1,((ds[1]*1)-1),ds[2]*1,ds[3]*1,ds[4]*1,ds[5]*1);
var del = (n.valueOf() - d.valueOf())/1000;
if(del<60) return 'Just now';
var minute = Math.floor(del/60);
if(minute<60) return minute + ' minute' + (minute==1? '':'s') + ' ago';
var hour = Math.floor(del/60/60);
if(hour<5) return hour + ' hour' + (hour==1? '':'s') + ' ago';
if(hour<24) {
if(n.getDate() == d.getDate()) return 'today at '+ds[3]+':'+ds[4];
return 'yesterday at '+ds[3]+':'+ds[4];
}
var days = Math.floor(del/60/60/24);
if(days==1) return 'yesterday at '+ds[3]+':'+ds[4];
if(days<4) return days + ' day' + (days==1? '':'s') +' ago at '+ds[3]+':'+ds[4];
var month = 'Jan Feb Mar Apr Mei Jun Jul Aug Sept Okt Nov Des'.split(' ');
return ds[2]+' '+month[ (ds[1]*1)-1 ]+' '+ds[0]+', '+ds[3]+':'+ds[4];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment