JS 字符串与日期的互转

一、字符串转化为时间并比较

第一种适用于:20100823这种字符串格式


function dateValid(){
var bd = document.getElementByIdx_x_x("sStartSaveDate").value;
var beginDate = newDate(bd.replace(/^(\d{4})(\d{2})(\d{2})$/,"$1/$2/$3"));

var ed = document.getElementByIdx_x_x("sEndSaveDate").value;
var endDate = newDate(ed.replace(/^(\d{4})(\d{2})(\d{2})$/,"$1/$2/$3"));

if(beginDate >= endDate){
alert("结束时间必须大于开始时间!");
return false;
}else{
document.getElementByIdx_x_x('searchform').submit();
}
}

第二种适用于:2010-08-23这种字符串格式

function dateValid(){
var beginDate = newDate(document.getElementByIdx_x_x("sStartSaveDate").value.replace(/-/g,"/"));
var endDate = newDate(document.getElementByIdx_x_x("sEndSaveDate").value.replace(/-/g,"/"));
if(beginDate >= endDate){
alert("结束时间必须大于开始时间!");
return false;
}else{
document.getElementByIdx_x_x('searchform').submit();
}

第三种适用于:2010/08/23这种字符串格式

function dateValid(){
var beginDate = newDate(document.getElementByIdx_x_x("sStartSaveDate").value);
var endDate = newDate(document.getElementByIdx_x_x("sEndSaveDate").value);
if(beginDate >= endDate){
alert("结束时间必须大于开始时间!");
return false;
}else{
document.getElementByIdx_x_x('searchform').submit();
}
}
二、时间转化为字符串

var time = str.Pattern('yyyy-MM-ddhh:mm:ss');

可以使用 JavaScript 中的 Date 对象和字符串的处理函数来进行字符串日期之间的互转。 例如,将一个日期对象转化成指定格式的字符串,可以使用以下函数: ```javascript function formatDate(date, format) { const year = date.getFullYear(); const month = date.getMonth() + 1; const day = date.getDate(); const hour = date.getHours(); const minute = date.getMinutes(); const second = date.getSeconds(); return format .replace('yyyy', year) .replace('MM', (month < 10 ? '0' : '') + month) .replace('dd', (day < 10 ? '0' : '') + day) .replace('HH', (hour < 10 ? '0' : '') + hour) .replace('mm', (minute < 10 ? '0' : '') + minute) .replace('ss', (second < 10 ? '0' : '') + second); } ``` 这个函数使用了一个格式化字符串,其中包含了年、月、日、小时、分钟和秒的占位符。函数将这些占位符替换成对应的日期或时间部分,并返回最终的字符串。 例如,以下代码将一个日期对象转化为 `2021-12-01 15:30:00` 这种格式的字符串: ```javascript const date = new Date('2021-12-01T15:30:00Z'); const formattedDate = formatDate(date, 'yyyy-MM-dd HH:mm:ss'); console.log(formattedDate); // 输出:2021-12-01 15:30:00 ``` 反过来,将一个指定格式的字符串转化为日期对象,可以使用以下函数: ```javascript function parseDate(str, format) { const yearIndex = format.indexOf('yyyy'); const year = parseInt(str.substr(yearIndex, 4)); const monthIndex = format.indexOf('MM'); const month = parseInt(str.substr(monthIndex, 2)) - 1; const dayIndex = format.indexOf('dd'); const day = parseInt(str.substr(dayIndex, 2)); const hourIndex = format.indexOf('HH'); const hour = parseInt(str.substr(hourIndex, 2)); const minuteIndex = format.indexOf('mm'); const minute = parseInt(str.substr(minuteIndex, 2)); const secondIndex = format.indexOf('ss'); const second = parseInt(str.substr(secondIndex, 2)); return new Date(year, month, day, hour, minute, second); } ``` 这个函数接受一个日期字符串和一个格式化字符串作为参数。函数根据格式化字符串的格式,从日期字符串中提取出对应的值,然后使用这些值创建一个新的 Date 对象。 例如,以下代码将一个 `2021-12-01 15:30:00` 格式的字符串转化为对应的日期对象: ```javascript const dateString = '2021-12-01 15:30:00'; const format = 'yyyy-MM-dd HH:mm:ss'; const date = parseDate(dateString, format); console.log(date); // 输出:Wed Dec 01 2021 15:30:00 GMT+0800 (中国标准时间) ``` 需要注意的是,这两个函数都假设输入的日期字符串符合指定的格式,否则可能会出现错误。因此,在使用这两个函数时,需要确保输入的字符串格式正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值