如何使用JavaScript以特定格式显示Date对象?

时间:2012-03-02 11:40:03

标签: javascript html datetime date

我有一个Date对象,我想以下面的格式显示它:

var myDate = getDate();
// this format: "13 Jan 2012 11:00am";

怎么可能?

谢谢,

8 个答案:

答案 0 :(得分:10)

有一个很好的JavaScript库可以很好地处理这个问题,只有5.5kb缩小。

http://momentjs.com/

它看起来像这样:

moment().format('MMMM Do YYYY, h:mm:ss a'); // February 25th 2013, 9:54:04 am
moment().subtract('days', 6).calendar(); // "last Tuesday at 9:53 AM"

您还可以使用格式或String对象传递日期Date

var date = new Date();
moment(date); // same as calling moment() with no args

// Passing in a string date
moment("12-25-1995", "MM-DD-YYYY");

还支持除英语之外的其他语言,如俄语,日语,阿拉伯语,西班牙语等。

查看docs

答案 1 :(得分:9)

使用toLocaleString()

const date = new Date();

const formattedDate = date.toLocaleString("en-GB", {
  day: "numeric",
  month: "short",
  year: "numeric",
  hour: "numeric",
  minute: "2-digit"
});

console.log(formattedDate); // '18 Jan 2020, 18:20'

答案 2 :(得分:7)

如果您不想使用任何库:

<script type="text/javascript">

  var myDate = new Date();

  var month=new Array();
  month[0]="Jan";
  month[1]="Feb";
  month[2]="Mar";
  month[3]="Apr";
  month[4]="May";
  month[5]="Jun";
  month[6]="Jul";
  month[7]="Aug";
  month[8]="Sep";
  month[9]="Oct";
  month[10]="Nov";
  month[11]="Dec";
  var hours = myDate.getHours();
  var minutes = myDate.getMinutes();
  var ampm = hours >= 12 ? 'pm' : 'am';
  hours = hours % 12;
  hours = hours ? hours : 12;
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var strTime = hours + ':' + minutes + ampm;
  // e.g. "13 Nov 2016 11:00pm";
  alert(myDate.getDate()+" "+month[myDate.getMonth()]+" "+myDate.getFullYear()+" "+strTime);
</script>

答案 3 :(得分:4)

javascript有很多日期格式化包,我在Steven Levithan's dateformat取得了很大的成功。

dateFormat(getDate(), "dd mmm yyyy hh:MMtt");

修改:如果您喜欢这种风格,它还会向format添加Date.prototype方法:

getDate().format("dd mmm yyyy hh:MMtt");

答案 4 :(得分:2)

查看Date()对象:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

有很多有用的方法......

答案 5 :(得分:1)

现在可以用来格式化日期的另一个 JavaScript 内置库是 Intl 库。

// use formatToParts() to convert a date and put it into an array for the different parts of the date
var customDateArray = new Intl.DateTimeFormat('en-US', { day: 'numeric', month: 'short', year: 'numeric', hour: 'numeric', minute: 'numeric' }). formatToParts(new Date()),
  dateParts = {}

// This converts the array to an object to make it easier to pick out what you want using template literals.
customDateArray.map(({type, value}) => {
  dateParts[type] = value
})

console.log(`${dateParts.day} ${dateParts.month} ${dateParts.year} ${dateParts.hour}:${dateParts.minute}${dateParts.dayPeriod.toLowerCase()}`)

更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat

答案 6 :(得分:0)

我认为这对你有帮助:

http://www.mattkruse.com/javascript/date/

有一个getDateFromFormat()函数,你可以调整一下来解决你的问题。

答案 7 :(得分:0)

您可以使用JavaScript中的Date对象显示不同的日期格式。不同的日期格式可能是

  1. 仅年份(YYYY)
  2. 年月(YYYY-MM)
  3. 完成日期(YYYY-MM-DD)
  4. 使用日期名称(YYYY-MM-DD DayName)完成日期
  5. 具有不同时间格式的日期

使用以下JavaScript代码以仅年份格式显示日期。

function displayDate(){
var now = new Date();
var year=now.getFullYear();
date.innerHTML=year
}
window.onload=displayDate;
<div id="date"></div>

该帖子将对了解更多有关显示其他更多日期格式的信息很有帮助:https://www.siteforinfotech.com/2014/03/how-to-display-date-format-in-javascript.html