1) CouchDB
2) Canvas Gaming
3) Unity 3D
Saturday, August 13, 2011
Thursday, August 4, 2011
ServerSide JavaScript Date Nonsense
Hi.
I want to format some dates in my Express views.
First of all, my employer, i.TV, has a DateTime library that we wrote that is alright:
https://gist.github.com/1125717
But I was hoping this would be something that's more in the view layer than than in the model/controller level.
Here are some libraries and functions that do some version of that:
http://www.datejs.com/
https://github.com/Flamefork/underscore.date
https://github.com/cdcarter/commonjs-date-formatting
http://timeago.yarp.com/
However, none of them did what I wanted. Here is one that did:
http://ejohn.org/blog/javascript-pretty-date/
This is what I did to make it work in my express views:
I want to format some dates in my Express views.
First of all, my employer, i.TV, has a DateTime library that we wrote that is alright:
https://gist.github.com/1125717
But I was hoping this would be something that's more in the view layer than than in the model/controller level.
Here are some libraries and functions that do some version of that:
http://www.datejs.com/
https://github.com/Flamefork/underscore.date
https://github.com/cdcarter/commonjs-date-formatting
http://timeago.yarp.com/
However, none of them did what I wanted. Here is one that did:
http://ejohn.org/blog/javascript-pretty-date/
This is what I did to make it work in my express views:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// main app | |
var helpers = require('./util/helpers') | |
app.helpers({"timeAgo": helpers.timeAgo}) | |
// view code | |
<span class="created"><%= timeAgo(activity.created) %></span> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// helpers file | |
/* | |
* JavaScript Pretty Date | |
* Copyright (c) 2008 John Resig (jquery.com) | |
* Licensed under the MIT license. | |
* | |
* Small Modification by Jamund Ferguson to accept a real Date object | |
*/ | |
exports.timeAgo = function(time) { | |
var date = time instanceof Date ? time : new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," ")) | |
var diff = (((new Date()).getTime() - date.getTime()) / 1000) | |
var 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"; | |
} |
Subscribe to:
Posts (Atom)