簡體   English   中英

將MM / DD / YYYY日期轉換為月日年

[英]Convert MM/DD/YYYY date to Month Day Year

我正在嘗試將MM / DD / YYYY日期轉換為長日期。 因此,例如, 02/12/2013 Tuesday February 12 2013將轉換為類似Tuesday February 12 2013

我看過MomentJS和其他JS方法,但是什么也沒做。 或者至少,我不這么認為。

有沒有一種方法可以准確地進行此日期轉換?

使用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> 

使用moment.js,它非常簡單:

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

如果您不想要任何其他腳本,則可以使用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 

在現代的瀏覽器上,您可以使用Intl API

Intl對象是ECMAScript國際化API的命名空間,該API提供語言敏感的字符串比較,數字格式以及日期和時間格式。 Collat​​or,NumberFormat和DateTimeFormat對象的構造函數是Intl對象的屬性。

解析是手動執行的, Date.parse

在ES5之前,不建議使用Date.parse,因為字符串的解析完全取決於實現。 不同主機解析日期字符串的方式仍存在許多差異,因此應手動解析日期字符串(如果要容納許多不同格式,則庫可以提供幫助)。

Date.UTC用於從Intl.DateTimeFormat#format的 parts提供日期。

Date.UTC()方法接受與構造函數的最長形式相同的參數,並返回自1970年1月1日通用時間00:00:00開始的Date對象中的毫秒數。

最后,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); 

我認為有一些簡單的方法可以做到這一點。

function getData (){
  var d = new Date("02/12/2013");
  var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
  var n = d.toLocaleDateString('en-US',options);
  var t = d.toLocaleTimeString('en-GB')
  var replase = n.replace(new RegExp(',', 'g'),' ')
  document.getElementById("demo").innerHTML = replase
 }

您可以將普通的Javascript Date方法用於類似的事情:

var date  = new Date("01/01/2000")
date.toDateString()   //"Sat Jan 01 2000"

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/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

利用片刻

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

在momentJS的主頁上,您可以看到所有可能的日期格式的列表( http://momentjs.com/ )。

Do在日期上加上“ nth”,使D只顯示一個數字,但是由於您全部用文字書寫,因此最好使用“ nth”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM