js中怎么把日期转换成数字?

JavaScript07

js中怎么把日期转换成数字?,第1张

方法主要有二种:转换函数、强制类型转换。

具体步骤:

一、转换函数:js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。仅仅有对String类型调用这些方法,这两个函数才干正确执行;对其它类型返回的都是NaN(NotaNumber)。

一些示比例如以下:

复制代码 代码例如以下:

parseInt("1234blue")//returns1234。

parseInt("0xA")//returns10。

parseInt("22.5")//returns22。

parseInt("blue")//returnsNaN。

parseInt()方法还有基模式,能够把二进制、八进制、十六进制或其它不论什么进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示比例如以下:

复制代码 代码例如以下:

parseInt("AF",16)//returns175。

parseInt("10",2)//returns2。

parseInt("10",8)//returns8。

parseInt("10",10)//returns10。

假设十进制数包括前导0,那么最好采用基数10,这样才不会意外地得到八进制的值比如:

复制代码 代码例如以下:

parseInt("010")//returns8。

parseInt("010",8)//returns8。

parseInt("010",10)//returns10。

parseFloat()方法与parseInt()方法的处理方式相似。

使用parseFloat()方法的还有一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

以下是使用parseFloat()方法的演示样例:

复制代码 代码例如以下:

parseFloat("1234blue")//returns1234.0。

parseFloat("0xA")//returnsNaN。

parseFloat("22.5")//returns22.5。

parseFloat("22.34.5")//returns22.34。

parseFloat("0908")//returns908。

parseFloat("blue")//returnsNaN。

2.强制类型转换

还可使用强制类型转换(typecasting)处理转换值的类型。使用强制类型转换能够访问特定的值,即使它是还有一种类型的。

ECMAScript中可用的3种强制类型转换例如以下:

Boolean(value)——把给定的值转换成Boolean型。

Number(value)——把给定的值转换成数字(能够是整数或浮点数)。

String(value)——把给定的值转换成字符串。

用这三个函数之中的一个转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。

当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。假设该值是空字符串、数字0、undefined或null,它将返回false。

能够用以下的代码段测试Boolean型的强制类型转换。

复制代码 代码例如以下:

Boolean("")//false_emptystring。

Boolean("hi")//true_non-emptystring。

Boolean(100)//true_non-zeronumber。

Boolean(null)//false-null。

Boolean(0)//false-zero。

Boolean(newObject())//true_object。

Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,仅仅是它转换的是整个值,而不是部分值。示比例如以下:

复制代码 代码例如以下:

用法结果

Number(false)0。

Number(true)1。

Number(undefined)NaN。

Number(null)0。

Number("5.5")5.5。

Number("5.6.7")NaN。

Number(newObject())NaN。

Number(100)100。

格式化时间

参数: formatStr 格式化串 y年,m月,d日,h小时,i分钟,s秒钟  缺省值 "y-m-d h:i:s"

fdate 要格式化的时间(时间戳)UTC秒数 缺省值 当前时间

实例: formatDate()  当前时间默认格式 如 2011-4-12 12:51:12

formatDate('y/m/d', 2132132131) 某时间格式为 年月日 如 2010/12/5  

function formatDate(formatStr, fdate)

{

var fTime, fStr = 'ymdhis'

if (!formatStr)

formatStr= "y-m-d h:i:s"

if (fdate)

fTime = new Date(fdate)

else

fTime = new Date()

var formatArr = [

fTime.getFullYear().toString(),

(fTime.getMonth()+1).toString(),

fTime.getDate().toString(),

fTime.getHours().toString(),

fTime.getMinutes().toString(),

fTime.getSeconds().toString()

]

for (var i=0i<formatArr.lengthi++)

{

formatStr = formatStr.replace(fStr.charAt(i), formatArr[i])

}

return formatStr

}

步骤一:将日期转换成我们常用的“yyyy-MM-dd hh:mm:ss”这种格式,我们可以对日期进行获取然后组装,具体代码如下所示:

步骤二:将日期转换成“某年某月某日”这种日期格式,此时我们只需要调用Date类的toLocaleDateString方法即可。

步骤三:直接获取“hh:mm:ss”时间,此时我们只需要调用Date的toLocaleTimeString方法即可。

步骤四:获取“获取"某年某月某日 hh:mm:ss"”这种格式,我们需要调用Date类的toLocaleString方法。

步骤五:调用dateFormat()方法。

6

步骤六:测试。启动项目后,浏览器中输入http://localhost:8080/WebTest/。点击界面上的“日期格式化测试”按钮,查看测试效果。

参考资料

百度经验.搜狗[引用时间2018-5-3]

最近需要写个小功能,就把这个功能拆成小方法了,觉得日期这玩意儿基本上都能用到,就记录下来,方便自己以后查找。

共有如下几种情况:

1、开始日期小于结束日期

2、两个日期相等,天数为0,之间没有日期

3、开始日期小于结束日期,天数为0,之间没有日期

<b>PS</b>:唯一的坑就是new Date()月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

getTime() :返回从 1970 年 1 月 1 日至今的毫秒数。

getDate():返回日期,一个月中的某一天

setDate():设置日期,一个月中的某一天