[译]在Javascript中进行日期相关的操作
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单
源地址在此:
https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b
在Javascript里制造date对象的话要用到Date() constructor
以下的例子将当前的日期和时间显示在页面上
document.write(new Date());
如果Date() constructor不使用任何参数而直接使用的话,则会返回当前的日期和时间.为了制造一个拥有指定时间和日期的date对象的话有两种方法:
1.使用一个date string
var dateOfBirth = new Date("January 13, 1980 11:20:00"); document.write(dateOfBirth);
2.使用具体数字指代年,月,日,小时,分钟,秒,毫秒.格式如下.
var dateOfBirth = new Date(year, month, day, hours, minutes, seconds, milliseconds);
例子:
var dateOfBirth = new Date(1980, 0, 13, 11, 20, 0, 0); document.write(dateOfBirth);
请注意:在Javascript中,月份的数字是从0开始的,所以,你如果你想要得到3月.那么你应该使用2,而不是3.
以上的代码会在我的电脑上制造出以下的结果,因为我电脑上使用的是(UTC)Dublin,Edinburgh,Lisbon,London的时区
Sun Jan 13 1980 11:20:00 GMT+0000 (GMT Standard Time)
如果你在你电脑上用的是不一样的时区的话,你可能会得到一个稍微不同的结果.比如如果你使用的是(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi时区的话,那么结果会如下所示
Sun Jan 13 1980 11:20:00 GMT+0530 (India Standard Time)
一些比较实用的Date对象方法
getFullYear()
返回整个年份(所有4个数字都会显示)
例子:以下例子会返回1980
var year = new Date(1980, 0, 13, 11, 20, 0, 0).getFullYear(); document.write(year);
getMonth()
这个方法会返回月份的数字(从0到11)
例子:以下例子返回0(1月)
var month = new Date(1980, 0, 13, 11, 20, 0, 0).getMonth(); document.write(month);
你还可以用以下的代码根据月份的数字获得月份的名字,以下例子会返回January
function getMonthNameFromNumber(monthNumber) { var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; return monthNames[monthNumber]; } var monthName = getMonthNameFromNumber(new Date(1980, 0, 13, 11, 20, 0, 0).getMonth()); document.write(monthName);
getDate()
这个方法返回月份里的日子(从1到31)
例子:以下例子返回13
var dayOfMonth = new Date(1980, 0, 13, 11, 20, 0, 0).getDate(); document.write(dayOfMonth);
getDay()
返回一周里的日期数字(从0到6),0代表Sunday,1代表Monday,以此类推
例子:以下例子会返回0
var dayOfWeek = new Date(1980, 0, 13, 11, 20, 0, 0).getDay(); document.write(dayOfWeek);
你可以用以下代码来从日子的代表数字获得具体日子的名字,以下代码返回Sunday.
function getWeekDayNameFromNumber(dayNumber) { var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return weekDays[dayNumber]; } var weekdayName = getWeekDayNameFromNumber(new Date(1980, 0, 13, 11, 20, 0, 0).getDay()); document.write(weekdayName);
你还可以用以下的方法来获取date对象里获得时间的部分
getHours() //返回小时(0-23) getMinutes() //返回分钟(0-59) getSeconds() //返回秒(0-59) getMilliseconds() //返回毫秒(0-999)
如何将date对象转化为dd/mm/yyyy的格式呢
function formatDate(date) { var day = date.getDate(); if (day [ 10) { day = "0" + day; } var month = date.getMonth() + 1; if (month [ 10) { month = "0" + month; } var year = date.getFullYear(); return day + "/" + month + "/" + year; } document.write(formatDate(new Date()));
如果你不想要单位数月份前的0的话,那么你可以如下修改代码
function formatDate(date) { var day = date.getDate(); var month = date.getMonth() + 1; var year = date.getFullYear(); return day + "/" + month + "/" + year; } document.write(formatDate(new Date()));