![](/img/trans.png)
[英]Javascript convert yyyy-mm-dd hh:mm:ss like newDate(“day, month date year hh:mm:ss”)
[英]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提供語言敏感的字符串比較,數字格式以及日期和時間格式。 Collator,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.