2016-11-02 13 views
0

次のフォーマットの日付を取得したいと考えています。16-SEP-16 12.00はjavascriptで表示されます。私はこれをどのように達成するかを考え出すことはできません。これをREST APIリクエストのクエリパラメータとして送信する必要があります。特定のフォーマットの日付/タイムスタンプを取得する

現在、すべての私は、私は月数およびないSEPなどの省略形であること、それに問題があり、個別に

var date = new Date(); 
 
var dt = date.getUTCDate() + '-' + date.getUTCMonth() + '-' + (date.getUTCFullYear() - 2000) + ' ' + date.getUTCHours() + '.' + date.getUTCMinutes(); 
 
console.log(dt);

のように日付をフォーマットすると考えることができます。

これを実現する簡単な方法もあります。

ありがとうございました。

+0

速記は、PHPやSQLのように、実際にはありませんが、formatyouは可能性がどの程度だけで日付の各部分を返すための方法があります必要があります:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date –

+0

@Pamblam問題は、私は月の短縮形を使用し、フロントエンドから必要なOracleデータベースを持っていることです。 〜へクエリパラメータと同じ形式を送信します。また、私はあなたが今まで行ってきたことを達成するために提案したのと同じリンクをたどった –

+0

2種類のソリューションは、それが好きであるという希望を提供しました –

答えて

1

の下に使用することができますMoment.jsを使用すると、それは美しいリットルの日付のライブラリとmoment.jsで

をフォーマットするには、次

var day = moment("2016-11-01"); 
 
console.log(day); 
 
console.log(day.format("DD-MMM-YYYY HH:MM"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.js"></script>

希望としてそれをフォーマットすることができ、これは不眠症は私がこれを書い作っ

+0

サードパーティのライブラリを使用しても問題はありませんが、javascriptだけで実現できれば良いでしょう –

+0

プロジェクトの複数の場所に日付を書式設定する必要があったためです。私はついにmoment.jsを使いました。手伝ってくれてありがとう。私はあなたに答えました –

1

var monthNames = [ 
 
    "Jan", "Feb", "Mar", 
 
    "Apr", "May", "Jun", "Jul", 
 
    "Aug", "Sep", "Oct", 
 
    "Nov", "Dec" 
 
]; 
 

 

 
var date = new Date(); 
 
var dt = date.getUTCDate() + '-' + monthNames[date.getUTCMonth()] + '-' + (date.getUTCFullYear() - 2000) + ' ' + date.getUTCHours() + '.' + date.getUTCMinutes(); 
 
console.log(dt);

月の配列を使用せずに、あなたは、サードパーティのライブラリを使用して任意の問題を持っていけない場合は、次のことができソリューション

var date = new Date(); 
 
Date.prototype.monthName = function() { 
 
    return this.toUTCString().split(' ')[2] 
 
}; 
 
var dt = date.getUTCDate() + '-' + date.monthName()+ '-' + (date.getUTCFullYear() - 2000) + ' ' + date.getUTCHours() + '.' + date.getUTCMinutes(); 
 
console.log(dt); 
 
document.write(dt);

+0

これは答えですが、私はこれを好きではありません –

+0

@ShubhamKhatri:月配列を使用せずに更新された答え –

+0

* toUTCString *によって返される文字列は実装に依存するため、特定の月の月名場所は良い考えではありません。 – RobG

1

に役立ちます。..

メソッドをサードパーティライブラリを必要とせずに日付オブジェクトに追加し、r与えられた省略形からフォーマットされた日付を返します。

私はそれを参考にして見ることができるPHP's date shorthandに基づいています。

Date.prototype.format = function(format) { 
    var months = ["January", "February", "March", "April", "May", "June", 
    "July", "August", "September", "October", "November", "December" 
    ]; 
    var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; 
    format = format.replace(/y/g, ("" + this.getFullYear()).substring(2)); 
    format = format.replace(/Y/g, "" + this.getFullYear()); 
    format = format.replace(/m/g, ("00" + (this.getMonth() + 1)).substr(-2, 2)); 
    format = format.replace(/F/g, months[this.getMonth()]); 
    format = format.replace(/M/g, months[this.getMonth()].substring(0, 3)); 
    format = format.replace(/n/g, "" + (this.getMonth() + 1)); 
    format = format.replace(/t/g, "" + new Date(this.getFullYear(), this.getMonth() - 1, 0).getDate()); 
    format = format.replace(/D/g, days[this.getDate()].substr(0, 3)); 
    format = format.replace(/d/g, ("00" + this.getDate()).substr(-2, 2)); 
    format = format.replace(/j/g, this.getDate()+""); 
    format = format.replace(/l/g, days[this.getDate()]); 
    format = format.replace(/w/g, this.getDay()); 
    format = format.replace(/a/g, this.getHours() > 11 ? "pm" : "am"); 
    format = format.replace(/A/g, this.getHours() > 11 ? "PM" : "AM"); 
    format = format.replace(/g/g, "" + (this.getHours() > 11 ? this.getHours() - 11 : this.getHours() + 1)); 
    format = format.replace(/G/g, "" + (this.getHours() + 1)); 
    format = format.replace(/h/g, ("00" + (this.getHours() > 11 ? this.getHours() - 11 : this.getHours() + 1)).substr(-2, 2)); 
    format = format.replace(/H/g, ("00" + (this.getHours() + 1)).substr(-2, 2)); 
    format = format.replace(/i/g, ("00" + this.getMinutes()).substr(-2, 2)); 
    format = format.replace(/s/g, ("00" + this.getSeconds()).substr(-2, 2)); 
    return format; 
}; 

例..

// 11/02/16 2:17 AM 
var d = (new Date()).format("m/d/y g:i A"); 

// November 2, 2016, 2:17 am 
var d = (new Date()).format("F j, Y, g:i a") 

And a fiddle

+0

'' 00 "+ this.getDate()'が必要な環境は何ですか? 'if(isNaN(this))return this.toString()'のような無効な日付のテストが必要です。 ;-) – RobG

+0

正面に2つのゼロを置き、2つの右の文字の部分文字列を取得するだけで、数字にゼロを埋め込む簡単な方法です。それを試してみてください。どのような状況で日付オブジェクトがNaNになるのですか? @RobG –

+0

ご協力ありがとうございます。将来的に参照することは有用であるが、確かに本研究のためではない。 –

関連する問題