js中截取有效日期(js中获取日期)

http://www.itjxue.com  2023-01-28 00:04  来源:未知  点击次数: 

js对时间截取前面部分

substring这个函数就是截取用的,但是不适合你这个业务,如果月、日是小于10,也就是单位数,substring截取容易出错;你这个截取有几种办法:

1,利用split把字符串转为数组的方式

var?arr="2018/6/21?10:05:30".split("?");//以空格分割为数组

var?date=arr[0];//arr内容是["2018/6/21","10:05:30"];所以第1个元素就是2018/6/21

//其实这个一行代码就可以了,不过我为了解说,所以分步骤去写的,一行代码写法如下:

var?date="2018/6/21?10:05:30".split("?")[0];

2、先把字符串转为Date,然后获取年月日拼接,这个方法代码有点冗余。

var?date=new?Date("2018/6/21?10:05:30");

var?year=date.getFullYear();

var?month=date.getMonth()+1;//getMonth()获取的月份从0开始,0~11,所以要加一

var?day=date.getDate();

//后面自己按照自己想要的格式凭借

JS 如何截取部分日期呢?

可以使用substring 方法提取字符串中介于两个指定下标之间的字符。

方法形式:substring(start,end)

举例:截取年月日部分的日期,代码如下:

var dateTime = new Date();? ? ? ? ?

var hour = dateTime.getHours();

var min = dateTime.getMinutes();

var sec = dateTime.getSeconds();

var yy = dateTime.getFullYear();

var dd = dateTime.getDate();

var mm = dateTime.getMonth();

var time= yy + "-" + mm+1 + "-" + dd + " " + hour + ":" + min + ":" + sec;?

console.log(time.substring(0,10));

截取结果如下图所示:

js中怎么截取日期的月份和日期

要根据你截取的日期的格式来决定代码

//假如是2017-10-22

var?dateStr?=?'2017-10-22';

var?reg?=?/^(\d{4})-(\d{1,2})-(\d{1,2})$/;

console.log(dateStr.match(reg));

console.log(RegExp.$1);

console.log(RegExp.$2);

console.log(RegExp.$3);

js如何获取时间

Js获取当前日期时间及其它操作

var myDate = new Date();

myDate.getYear(); //获取当前年份(2位)

myDate.getFullYear(); //获取完整的年份(4位,1970-????)

myDate.getMonth(); //获取当前月份(0-11,0代表1月)

myDate.getDate(); //获取当前日(1-31)

myDate.getDay(); //获取当前星期X(0-6,0代表星期天)

myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)

myDate.getHours(); //获取当前小时数(0-23)

myDate.getMinutes(); //获取当前分钟数(0-59)

myDate.getSeconds(); //获取当前秒数(0-59)

myDate.getMilliseconds(); //获取当前毫秒数(0-999)

myDate.toLocaleDateString(); //获取当前日期

var mytime=myDate.toLocaleTimeString(); //获取当前时间

myDate.toLocaleString( ); //获取日期与时间

日期时间脚本库方法列表

Date.prototype.isLeapYear 判断闰年

Date.prototype.Format 日期格式化

Date.prototype.DateAdd 日期计算

Date.prototype.DateDiff 比较日期差

Date.prototype.toString 日期转字符串

Date.prototype.toArray 日期分割为数组

Date.prototype.DatePart 取日期的部分信息

Date.prototype.MaxDayOfDate 取日期所在月的最大天数

Date.prototype.WeekNumOfYear 判断日期所在年的第几周

StringToDate 字符串转日期型

IsValidDate 验证日期有效性

CheckDateTime 完整日期时间检查

daysBetween 日期天数差

js代码:

//---------------------------------------------------

// 判断闰年

//---------------------------------------------------

Date.prototype.isLeapYear = function()

{

return (0==this.getYear()%4((this.getYear()%100!=0)||(this.getYear()%400==0)));

}

//---------------------------------------------------

// 日期格式化

// 格式 YYYY/yyyy/YY/yy 表示年份

// MM/M 月份

// W/w 星期

// dd/DD/d/D 日期

// hh/HH/h/H 时间

// mm/m 分钟

// ss/SS/s/S 秒

//---------------------------------------------------

js如何获得系统时间年月日时分秒

function?showTime()?{?

??var?now?=?new?Date();?

??var?nowTime?=?now.toLocaleString();?

??var?date?=?nowTime.substring(0,10);//截取日期?

??var?time?=?nowTime.substring(10,20);?//截取时间?

??var?week?=?now.getDay();?//星期?

??var?hour?=?now.getHours();?//小时?

??//判断星期几?

??var?weeks?=?["日","一","二","三","四","五","六"];?

??var?getWeek?=?"星期"?+?weeks[week];?

??var?sc;?

??//判断是AM?or?PM?

??if(hour?=?0??hour??5){?

???sc?=?'凌晨';?

??}?

??else?if(hour??5??hour?=?7){?

???sc?=?'早上';?

??}?

??else?if(hour??7??hour?=?11){?

???sc?=?'上午';?

??}?

??else?if(hour??11??hour?=?13){?

???sc?=?'中午';?

??}?

??else?if(hour?13??hour?=?18){?

???sc?=?'下午';?

??}?

??else?if(hour??18??hour?=?23){?

???sc?=?'晚上';?

??}?

??document.getElementById('time').innerHTML?="当前时间:"?+?date+"?"?+?getWeek?+"nbsp;"+"???"+sc+"??"+time;

??setTimeout('showTime()',1000);?

}?

/script?

调用方法:?

body?onload="showTime()"?

div?id="time"/div?

/body?

2.简洁的办法:?显示格式:??当前时间:?2010年6月1日?10:00:00?星期一?

htmtl

head/head

body?

div?id="linkweb"?style="?display:inline;"/div?

script?

??setInterval("document.getElementById('linkweb').innerHTML=new?Date??().toLocaleString()+'?星期'+'日一二三四五六'.charAt(new?Date().getDay??());",1000);?

/script?

/body

/html

js 验证是否有效日期

function?check(date){

????return?(new?Date(date).getDate()==date.substring(date.length-2));

}

//参数date可以格式化为xx-xx-xx或xxxx-xx-xx或用/分割

附:

通常来说,javascript验证日期的有效性可以通过正则判断

但正则表达式无法精准验证日期的有效性,你无法通过正则表达式判断出1900-02-29是非法日期而2000-02-29是合法日期,而且正则表达式匹配起来比较繁琐。

要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/30/31),你可以用一个数组表示每月的天数,如daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],但你会发现daysInMonth[1]这个值可能是28或29,你又要写一个判断闰年的函数来解决这个问题......

这至少要花费20行以上的代码来完成这件事,而通过javascript中的Date对象,我们只需要1行代码即可完成上述功能。

function check(date){

return (new Date(date).getDate()==date.substring(date.length-2));

}

date为一个待检查的类日期字符串(如2013-01-01、2013/01/01、2013/01/32、2013/02/29),不论这个字符串是否正确

通过新建的Date对象(new Date(date)),可以识别出该日期是否正确,如果不正确则返回Invalid Date

但这样会有一个bug,当日期的值在1-31之间,new Date总返回一个新的对象,不论该月份是否存在这个日期(如2013-02-30将返回日期对象Sat Mar 02 2013 08:00:00 GMT+0800 (中国标准时间)),返回结果是下个月的日期而不报错

所以要用getDate()方法获取日期(new Date('2013-02-30')对象的getDate()方法将返回2)

date.substring(date.length-2)会获取到字符串最后两位也就是日期的部分,这与Date对象的日期部分做比较,如果相等则说明日期有效,否则为无效日期

如果日期无效则'=='左边值为NaN,右边无论是什么(''、null、undefined、NaN等)结果都为false

(责任编辑:IT教学网)

更多