js 字符串转日期 日期转字符串

本文介绍了一种将字符串转换为日期格式的方法,并提供了一个实用的日期格式化函数。通过这两个函数,可以轻松地进行日期的解析和格式化,实现日期的增加等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 2014-02-25

/** 
     * 字符串转时间(yyyy-MM-dd HH:mm:ss) 
     * result (分钟) 
     */  
    stringToDate : function(fDate){  
        var fullDate = fDate.split("-"); 
      
        return new Date(fullDate[0], fullDate[1]-1, fullDate[2], 0, 0, 0);  
    }


/**
		 * 格式化日期
		 * @param date 日期
		 * @param format 格式化样式,例如yyyy-MM-dd HH:mm:ss E
		 * @return 格式化后的金额
		 */
		formatDate : function (date, format) {
			var v = "";
			if (typeof date  == "string" || typeof date  != "object") {
				return;
			}
			var year    = date.getFullYear();
			var month   = date.getMonth()+1;
			var day     = date.getDate();
			var hour    = date.getHours();
			var minute  = date.getMinutes();
			var second  = date.getSeconds();
			var weekDay = date.getDay();
			var ms      = date.getMilliseconds();
			var weekDayString = "";
			
			if (weekDay == 1) {
				weekDayString = "星期一";
			} else if (weekDay == 2) {
				weekDayString = "星期二";
			} else if (weekDay == 3) {
				weekDayString = "星期三";
			} else if (weekDay == 4) {
				weekDayString = "星期四";
			} else if (weekDay == 5) {
				weekDayString = "星期五";
			} else if (weekDay == 6) {
				weekDayString = "星期六";
			} else if (weekDay == 7) {
				weekDayString = "星期日";
			}

			v = format;
			//Year
			v = v.replace(/yyyy/g, year);
			v = v.replace(/YYYY/g, year);
			v = v.replace(/yy/g, (year+"").substring(2,4));
			v = v.replace(/YY/g, (year+"").substring(2,4));

			//Month
			var monthStr = ("0"+month);
			v = v.replace(/MM/g, monthStr.substring(monthStr.length-2));

			//Day
			var dayStr = ("0"+day);
			v = v.replace(/dd/g, dayStr.substring(dayStr.length-2));

			//hour
			var hourStr = ("0"+hour);
			v = v.replace(/HH/g, hourStr.substring(hourStr.length-2));
			v = v.replace(/hh/g, hourStr.substring(hourStr.length-2));

			//minute
			var minuteStr = ("0"+minute);
			v = v.replace(/mm/g, minuteStr.substring(minuteStr.length-2));

			//Millisecond
			v = v.replace(/sss/g, ms);
			v = v.replace(/SSS/g, ms);
			
			//second
			var secondStr = ("0"+second);
			v = v.replace(/ss/g, secondStr.substring(secondStr.length-2));
			v = v.replace(/SS/g, secondStr.substring(secondStr.length-2));
			
			//weekDay
			v = v.replace(/E/g, weekDayString);
			return v;
		}

 

// dateValue=2014-02-28
var cDate = _STAGE.stringToDate(dateValue);
cDate.setDate(cDate.getDate()+1);
currentDate = jAnXin.util.formatDate(cDate, "yyyy-MM-dd");

console.log(currentDate ); // 2014-03-01

 

### 将字符串换为日期的方法 在 JavaScript 中,可以使用 `Date` 对来实现字符串日期换。以下是几种常见的方法: #### 方法一:通过 `new Date(dateString)` 构造函数 可以直接传递一个符合标准格式的日期字符串给 `Date` 的构造函数[^1]。如果输入的字符串格式不被支持,则会返回 `Invalid Date`。 ```javascript const dateString = "2023-10-05"; const dateObject = new Date(dateString); console.log(dateObject); // 输出: Thu Oct 05 2023 ... ``` 此方法适用于 ISO 8601 格式的日期字符串(如 `"YYYY-MM-DD"` 或 `"YYYY-MM-DDTHH:mm:ss.sssZ"`)。需要注意的是,浏览器对于非标准化日期格式的支持可能有所不同。 --- #### 方法二:手动解析并创建日期 当遇到复杂或自定义格式的日期字符串时,可以通过正则表达式或其他方式提取年、月、日等部分,并将其作为参数传入 `Date` 构造函数。 ```javascript const customDateString = "05/10/2023"; // 假设格式为 DD/MM/YYYY const parts = customDateString.split("/"); const day = parseInt(parts[0], 10); const month = parseInt(parts[1], 10) - 1; // 注意月份是从 0 开始计数 const year = parseInt(parts[2], 10); const dateObject = new Date(year, month, day); console.log(dateObject); // 输出: Wed Oct 05 2023 ... ``` 这种方法提供了更大的灵活性,适合处理各种定制化的需求。 --- #### 方法三:利用第三方库(如 Moment.js 或 Day.js) 为了简化复杂的日期操作,推荐使用成熟的第三方库。例如,Moment.js 和 Day.js 提供了强大的日期解析功能。 ```javascript // 使用 Day.js 进行日期换 const dayjs = require('dayjs'); // 如果是在 Node.js 环境下运行 const dateString = "October 5th, 2023"; const dateObject = dayjs(dateString).toDate(); console.log(dateObject); // 输出: Thu Oct 05 2023 ... ``` 这些库通常能够自动识别多种常见日期格式,从而减少开发者的负担。 --- ### 关键注意事项 - **时间戳比较**:在某些情况下,可能会需要将日期换为其对应的 Unix 时间戳以便于计算或存储。这可以通过调用 `Date.getTime()` 实现。 ```javascript const timestamp = (new Date()).getTime(); // 当前时间的时间戳 console.log(timestamp); // 输出当前时间距离 Unix Epoch 的毫秒数 ``` - **严格相等 vs 宽松相等**:在判断两个变量是否相等时,应优先考虑使用严格的全等运算符 (`===`) 而不是宽松的相等运算符 (`==`) 来避免隐式类型换带来的潜在错误[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值