[译]在Javascript中进行日期相关的操作

Posted 马大欧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[译]在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()));

 

以上是关于[译]在Javascript中进行日期相关的操作的主要内容,如果未能解决你的问题,请参考以下文章

18.javascript 日期相关操作

Javascript 日期格式化 相关操作

javascript基础学习

JavaScript 之日起对象(转)

[译] 2018年最佳JavaScript数据可视化和图表库

[译]Javascript timing事件