0

Javascriptで日付を「yyyy-MM-ddHH:mm:ss z」などにフォーマットするにはどうすればよいですか?

これ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 :)完璧!

4

3 に答える 3

1
function formatDate(dateObject) //pass date object
{
  return (dateObject.getFullYear() + "-" + (dateObject.getMonth() + 1)) + "-" + dateObject.getDate()   ;
}
于 2012-11-29T10:00:28.460 に答える
0

基本的に、3 つの方法があり、自分で文字列を結合する必要があります。

getDate(): 日付を返します

getMonth(): 月を返します

getFullYear(): 年を返します

例:

var 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 の手順を参照し、これも確認してください。

于 2012-11-29T10:32:16.447 に答える
0

このライブラリを使用して、生活をより簡単にします。

var formattedDate = new Date().format('yyyy-MM-dd h:mm:ss');
document.getElementById("time").innerHTML= formattedDate;

デモ

于 2012-11-29T09:59:54.610 に答える