4

MM/DD/YYYY 日付を長い日付に変換しようとしています。たとえば、02/12/2013は のようなものに変換されますTuesday February 12 2013

MomentJS やその他の JS メソッドを見てきましたが、実際に望んでいたことは何もありませんでした。または、少なくとも、私はそうは思いませんでした。

この日付変換を正確に行う方法はありますか?

4

8 に答える 8

5

Date使用できる他のスクリプトといくつかの配列が必要ない場合

var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var now = new Date('02/12/2013');
console.log(days[now.getDay()] + ' ' + months[now.getMonth()] + ' ' + now.getDate() + ' ' + now.getFullYear()); //Tuesday February 12 2013

于 2016-09-14T16:17:24.330 に答える
4

moment.js を使用して、

JavaScript Date オブジェクトを使用して、このようにすることができます

var date = new Date(2013, 1, 12);
console.log(moment(date).format('dddd MMMM D Y'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script>

日付文字列を長い日付形式文字列に変換する場合は、次のようにできます。

var longDateStr = moment('02/12/2013', 'M/D/Y').format('dddd MMMM D Y');
console.log(longDateStr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.0/moment.min.js"></script>

于 2016-09-14T16:29:04.313 に答える
2

最新のブラウザでは、Intl APIを使用できます

Intl オブジェクトは ECMAScript 国際化 API の名前空間であり、言語に依存した文字列の比較、数値の書式設定、および日付と時刻の書式設定を提供します。Collat​​or、NumberFormat、および DateTimeFormat オブジェクトのコンストラクターは、Intl オブジェクトのプロパティです。

解析は手動で実行されます。Date.parse

ES5 までは、文字列の解析は完全に実装に依存していたため、Date.parse の使用はお勧めしません。異なるホストが日付文字列を解析する方法にはまだ多くの違いがあるため、日付文字列は手動で解析する必要があります (多くの異なる形式に対応する必要がある場合は、ライブラリが役立ちます)。

Date.UTCpartsは、Intl.DateTimeFormat#formatの日付を提供するために使用されます。

Date.UTC() メソッドは、コンストラクターの最長形式と同じパラメーターを受け入れ、1970 年 1 月 1 日 00:00:00 (世界時) からのミリ秒数を Date オブジェクトで返します。

最後に、要件に一致するように,、書式設定された文字列から 's が削除されます。en-US

const parts = '02/12/2013'.split('/');
parts.unshift(parts.pop());
parts[1] -= 1;
const dateString = new Intl.DateTimeFormat('en-US', {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  timeZone: 'UTC'
}).format(Date.UTC(...parts)).replace(/,/g, '');
console.log(dateString);

于 2016-09-14T16:32:38.120 に答える
1

プレーンな Javascript Date メソッドを同様のものに使用できます。

var date  = new Date("01/01/2000")
date.toDateString()   //"Sat Jan 01 2000"
于 2016-09-14T16:08:56.203 に答える
0

FullJS :

function mydate(date)
{
  var
    month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    days  = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
  ;
  return days[date.getDay()]+' '+month[date.getMonth()]+' '+date.getDate()+' '+date.getFullYear()
}

console.log(mydate(new Date()));

参照: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

于 2016-09-14T16:17:02.933 に答える
-1

瞬間を利用して、

moment().format('dddd MMMM Do YYYY');

momentJS のメイン ページで、可能なすべての日付形式のリストを確認できます ( http://momentjs.com/ )。

Do日付に「nth」を足しDて、数字だけを表示するようにしますが、すべて文字で書くので、「nth」を使用した方がよいでしょう

于 2016-09-14T16:08:45.893 に答える