Click here to Skip to main content
16,010,201 members
Home / Discussions / Web Development
   

Web Development

 
GeneralChanging References quickly Pin
sharkbait8-Nov-04 3:58
sharkbait8-Nov-04 3:58 
GeneralSigning a javascript block Pin
JonasSyrstad8-Nov-04 0:41
JonasSyrstad8-Nov-04 0:41 
GeneralChange date format in javascript Pin
R. Thomas7-Nov-04 5:40
R. Thomas7-Nov-04 5:40 
GeneralRe: Change date format in javascript Pin
Ted Ferenc7-Nov-04 6:27
Ted Ferenc7-Nov-04 6:27 
GeneralRe: Change date format in javascript Pin
R. Thomas7-Nov-04 13:02
R. Thomas7-Nov-04 13:02 
GeneralRe: Change date format in javascript Pin
Ted Ferenc7-Nov-04 21:36
Ted Ferenc7-Nov-04 21:36 
GeneralErrata Pin
Ted Ferenc8-Nov-04 22:04
Ted Ferenc8-Nov-04 22:04 
GeneralRe: Change date format in javascript Pin
Richard Deeming10-Nov-04 8:21
mveRichard Deeming10-Nov-04 8:21 
First, you need to set up functions to return the day and month names, since the JS Date object doesn't include them:
Date._dayNames = new Array(
    "Sunday", 
    "Monday", 
    "Tuesday", 
    "Wednesday", 
    "Thursday", 
    "Friday", 
    "Saturday");
    
Date._dayNamesA = new Array(
    "Sun", 
    "Mon", 
    "Tue", 
    "Wed", 
    "Thu", 
    "Fri", 
    "Sat");
    
Date.prototype.getDayName = function(abbreviate)
{
    if (isNaN(this))
        return "";
    else if (true == abbreviate)
        return Date._dayNamesA[this.getDay()];
    else
        return Date._dayNames[this.getDay()];
}
    
Date._monthNames = new Array(
    "January", 
    "February", 
    "March", 
    "April", 
    "May", 
    "June", 
    "July",
    "August",
    "September",
    "October",
    "November",
    "December");
    
Date._monthNamesA = new Array(
    "Jan", 
    "Feb", 
    "Mar", 
    "Apr", 
    "May", 
    "June", 
    "July",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec");
    
Date.prototype.getMonthName = function(abbreviate)
{
    if (isNaN(this))
        return "";
    else if (true == abbreviate)
        return Date._monthNamesA[this.getMonth()];
    else
        return Date._monthNames[this.getMonth()];
}

Then, you need to use a regular expression to parse the format string and substitute the real values:
Date._reFormat = /(\\{0,1})(dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|gg|g|hh|h|ss|f+|tt|t|zzz|zz|z)/gi;
    
Date.prototype.format = function(format) 
{
    if (isNaN(this)) return this.toString();
    if (!format || 0 == format.length) return this.toString();
    
    var value = this;
    return format.replace(Date._reFormat, function($0, $1, $2)
    {
        var fmt = $2;
        if (!fmt || 0 == fmt.length) return "";
        
        var ret = "";
        if ("\\" == $1)
        {
            ret = fmt.charAt(0);
            fmt = fmt.substr(1);
            if (0 == fmt.length) return ret;
        }
        
        switch(fmt.toLowerCase())
        {
            case "dddd":
            {
                // Full day name
                ret += value.getDayName();
                break;
            }
            case "ddd":
            {
                // Short day name
                ret += value.getDayName(true);
                break;
            }
            case "dd":
            {
                // Padded day number
                var d = value.getDate();
                if (d < 10) ret += "0";
                ret += d;
                break;
            }
            case "d":
            {
                // Day number
                ret += value.getDate();
                break;
            }
            
            case "mmmm":
            {
                // Full month name
                ret += value.getMonthName();
                break;
            }
            case "mmm":
            {
                // Short month name
                ret += value.getMonthName(true);
                break;
            }
            case "mm":
            {
                if ("MM" == fmt)
                {
                    // Padded month number
                    var m = value.getMonth() + 1;
                    if (m < 10) ret += "0";
                    ret += m;
                }
                else if ("mm" == fmt)
                {
                    // Padded minutes
                    var m = value.getMinutes();
                    if (m < 10) ret += "0";
                    ret += m;
                }
                else
                {
                    ret += fmt;
                }
                
                break;
            }
            case "m":
            {
                if ("M" == fmt)
                {
                    // Month number
                    var m = value.getMonth() + 1;
                    ret += m;
                }
                else
                {
                    // Minutes
                    ret += value.getMinutes();
                }
                
                break;
            }
            
            case "yyyy":
            {
                // Full year
                ret += value.getFullYear();
                break;
            }
            case "yy":
            {
                // Padded short year
                ret += value.getFullYear().toString().substr(2);
                break;
            }
            case "y":
            {
                // Short year
                var y = value.getFullYear().toString().substr(2);
                if ("0" == y.charAt(0)) y = y.substr(1);
                ret += y;
                break;
            }
            
            case "gg":
            case "g":
            {
                // AD | BC
                var y = value.getFullYear();
                if (y >= 0)
                    ret += "AD";
                else
                    ret += "BC";
                
                break;
            }
            
            case "hh":
            {
                if ("HH" == fmt)
                {
                    // Padded hour, 24 hour clock
                    var h = value.getHours();
                    if (h < 10) ret += "0";
                    ret += h;
                }
                else if ("hh" == fmt)
                {
                    // Padded hour, 12 hour clock
                    var h = value.getHours();
                    if (0 == h)
                        h = 12;
                    else if (h > 12)
                        h -= 12;
                    
                    if (h < 10) ret += "0";
                    ret += h;
                }
                else
                {
                    ret += fmt;
                }
                
                break;
            }
            case "h":
            {
                if ("H" == fmt)
                {
                    // Hour, 24 hour clock
                    var h = value.getHours();
                    if (h < 10) ret += "0";
                    ret += h;
                }
                else
                {
                    // Hour, 12 hour clock
                    var h = value.getHours();
                    if (0 == h)
                        h = 12;
                    else if (h > 12)
                        h -= 12;
                    
                    ret += h;
                }
                
                break;
            }
            
            case "ss":
            {
                // Seconds
                var s = value.getSeconds();
                if (s < 10) ret += "0";
                ret += s;
                break;
            }
            
            case "tt":
            {
                // AM | PM
                var h = value.getHours();
                if (12 <= h)
                    ret += "PM";
                else
                    ret += "AM";
                
                break;
            }
            case "t":
            {
                // A | P
                var h = value.getHours();
                if (12 <= h)
                    ret += "P";
                else
                    ret += "A";
                
                break;
            }
            
            case "zzz":
            {
                // Time zone offset (hours and minutes)
                var off = -value.getTimezoneOffset();
                if (off < 0)
                {
                    ret += "-";
                    off = -off;
                }
                else
                {
                    ret += "+";
                }
                
                var offH = Math.round(off / 60);
                off -= 60 * offH;
                
                if (offH < 10) ret += "0";
                ret += offH;
                ret += ":"
                if (off < 10) ret += "0";
                ret += off;
                
                break;
            }
            case "zz":
            {
                // Time zone offset (padded hours)
                var off = -Math.round(value.getTimezoneOffset() / 60);
                if (off < 0)
                {
                    ret += "-";
                    off = -off;
                }
                else
                {
                    ret += "+";
                }
                
                if (off < 10) ret += "0";
                ret += off;
                break;
            }
            case "z":
            {
                // Time zone offset (hours)
                var off = -Math.round(value.getTimezoneOffset() / 60);
                if (off < 0)
                {
                    ret += "-";
                    off = -off;
                }
                else
                {
                    ret += "+";
                }
                ret += off;
                break;
            }
            
            default:
            {
                if (/^f+$/gi.test(fmt))
                {
                    // Fractional seconds
                    var f = value.getMilliseconds() / 1000;
                    var div = Math.pow(10, fmt.length);
                    f = Math.round(f * div);
                    ret += f;
                }
                else
                {
                    ret += fmt;
                }
            }
        }
        
        return ret;
    });
}

Finally, call the new format function to format your date:
var dte = new Date("Thu Jan 10 00:00:00 UTC+0800 2002");
alert(dte.format("dd-MM-yyyy hh:mm:ss"));



"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
GeneralAutomated file processing by proxy server Pin
D1_DRE6-Nov-04 10:32
D1_DRE6-Nov-04 10:32 
GeneralCalling script function from IE Activex Control Pin
gradiov6-Nov-04 3:32
gradiov6-Nov-04 3:32 
QuestionCan a Web App that is running in an iframe take over the whole screen? Pin
mterzich5-Nov-04 23:47
mterzich5-Nov-04 23:47 
AnswerRe: Can a Web App that is running in an iframe take over the whole screen? Pin
benjymous12-Nov-04 5:24
benjymous12-Nov-04 5:24 
QuestionHow can I open the source Pin
Muad-Dib5-Nov-04 12:04
Muad-Dib5-Nov-04 12:04 
GeneralRe: How do you do an inline a:hover in a tag? Pin
Paul Ingles5-Nov-04 4:24
Paul Ingles5-Nov-04 4:24 
GeneralVC++ Addind checkbox element besides Anchor tag on the fly Pin
mehtas4-Nov-04 18:24
mehtas4-Nov-04 18:24 
Questionhow to a:hover inline Pin
cdmlb@hotmail.com4-Nov-04 15:39
cdmlb@hotmail.com4-Nov-04 15:39 
AnswerRe: how to a:hover inline Pin
rgoyal8-Nov-04 23:21
rgoyal8-Nov-04 23:21 
GeneralJava connection to MS Access Pin
Red Sunday4-Nov-04 13:03
Red Sunday4-Nov-04 13:03 
GeneralRe: Java connection to MS Access Pin
David Salter8-Nov-04 23:29
David Salter8-Nov-04 23:29 
Generalasp, jsp and unix Pin
includeh104-Nov-04 5:42
includeh104-Nov-04 5:42 
GeneralRe: asp, jsp and unix Pin
V.4-Nov-04 21:29
professionalV.4-Nov-04 21:29 
GeneralRe: asp, jsp and unix Pin
raouls4-Nov-04 21:37
raouls4-Nov-04 21:37 
GeneralRe: asp, jsp and unix Pin
Peff7-Nov-04 7:27
Peff7-Nov-04 7:27 
Questioninclude or import in html? Pin
includeh104-Nov-04 5:40
includeh104-Nov-04 5:40 
AnswerRe: include or import in html? Pin
Peff7-Nov-04 7:34
Peff7-Nov-04 7:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.