2012-11-29 82 views
0

如何在Javascript中将日期格式化为某个日期'yyyy-MM-dd HH:mm:ss z'?日期的Javascript日期格式

date.toString('yyyy-MM-dd HH:mm:ss z');从来没有制定出对我来说:/

任何想法?

======

我解决我自己的,我重写这样的:

var parseDate = function(date) { 
    var m = /^(\d{4})-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d) UTC$/.exec(date); 
    var tzOffset = new Date(+m[1], +m[2] - 1, +m[3], +m[4], +m[5], +m[6]).getTimezoneOffset(); 

    return new Date(+m[1], +m[2] - 1, +m[3], +m[4], +m[5] - tzOffset, +m[6]); 
} 

var formatDateTime = function(data) { 
    var utcDate = parseDate(data); 

    var theMonth = utcDate.getMonth() + 1; 
    var myMonth = ((theMonth < 10) ? "0" : "") + theMonth.toString(); 

    var theDate = utcDate.getDate(); 
    var myDate = ((theDate < 10) ? "0" : "") + theDate.toString(); 

    var theHour = utcDate.getHours(); 
    var myHour = ((theHour < 10) ? "0" : "") + theHour.toString(); 

    var theMinute = utcDate.getMinutes(); 
    var myMinute = ((theMinute < 10) ? "0" : "") + theMinute.toString(); 

    var theSecond = utcDate.getSeconds(); 
    mySecond = ((theSecond < 10) ? "0" : "") + theSecond.toString(); 

    var theTimezone = new Date().toString(); 
    var myTimezone = theTimezone.indexOf('(') > -1 ? 
      theTimezone.match(/\([^\)]+\)/)[0].match(/[A-Z]/g).join('') : 
      theTimezone.match(/[A-Z]{3,4}/)[0]; 

    if (myTimezone == "GMT" && /(GMT\W*\d{4})/.test(theTimezone)) { 
     myTimezone = RegExp.$1; 
    } 

    if (myTimezone == "UTC" && /(UTC\W*\d{4})/.test(theTimezone)) { 
     myTimezone = RegExp.$1; 
    } 

    var dateString = utcDate.getFullYear() + "-" + 
        myMonth + "-" + 
        myDate + " " + 
        myHour + ":" + 
        myMinute + ":" + 
        mySecond + " " + 
        myTimezone; 

    return dateString; 
} 

,我也得到:2012年11月15日22时08分08秒MPST :)完美!

+0

可能重复的[如何显示的日期和在JavaScript 2007年2月25日的格式,如果我有日期对象](HTTP:/ /stackoverflow.com/questions/1536516/how-to-display-a-date-as-2-25-2007-format-in-javascript-if-i-have-date-object) –

+0

这不是一个确切的副本,但这是同样的问题,你应该从那里弄清楚。 –

+0

我读过一个,一些使用外部脚本。我想要一些纯粹的功能。 – lannyboy

回答

1
function formatDate(dateObject) //pass date object 
{ 
    return (dateObject.getFullYear() + "-" + dateObject.getMonth() + 1) + "-" + dateObject.getDate() ; 
} 
0

基本上,我们有三种方法,你必须琴弦为自己结合:

GETDATE():返回日期

得到月():返回月份

和getFullYear():返回年份

例子:

变种d =新的日期();

var curr_date = d.getDate(); 

var curr_month = d.getMonth() + 1; //Months are zero based 
var curr_year = d.getFullYear(); 
document.write(curr_date + "-" + curr_month + "-" + curr_year); </script> 

更多细节看10 steps to format date and time并且还check this