方法主要有二种:转换函数、强制类型转换。
具体步骤:
一、转换函数: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():设置日期,一个月中的某一天