1、年月日转换
var oldDate = "20111220";
var newDate = oldDate.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
console.log(newDate );//2011-12-20
2、年月日时分秒转换
var oldDate = "20111220101010";
var newDate = oldDate.replace(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/, "$1-$2-$3 $4:$5:$6");
console.log(newDate );//2011-22-33 10:10:10
方法二:字符串处理
function formatStringyyyyMMddToyyyy_MM_dd (value){
if(value.length == 8){
return value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8);
} else if(value.length == 6){
return value.substring(0, 4) + "-" + value.substring(4, 6);
} else {
return value;
}
}
最近遇到一个问题,就是获取表单中的
日期
往后台通过
js
on方式传的时候,遇到Date.parse(str)函数在ff下报错: NAN 找了些资料,发现是由于Date.parse()函数对
日期
格式有要求:详细参考 Date.parse函数 对于
js
操作
日期
: 创建一个
日期
对象: var objDate=new Date([arguments list]); 参数形式有以下5种: 代码如下: view plainnew Date(“month
dd
,
yyyy
hh:
mm
:ss”); new Date(“month
dd
,
yyyy
”); new Date(
yyyy
,mth,
dd
,hh,
mm
,ss);
javascript
提供的
日期
格式化太简单,一般应用都需要自己实现格式化
方法
.下面是我想出的一个格式化处理方案,应该是可以满足常用的需求.
日期
模板中可以使用任意分隔符,还可以使用文字作为分隔符,甚至支持类似
yyyyMMdd
之类没有分隔符的格式化. 原理:用正则表达式将
日期
模板中的
日期
元素[如
yyyy
,
MM
,
dd
]和分隔符拆分成数组,然后用实际的值替换
日期
元素形成
日期
字符串
.
实现共有两个函数,粘贴可运行.
扩展方式:
示例中只支持了年月日时分秒毫秒的元素,如果需要显示星期则可以在values中添加w = getDay(),将正则表达式修改为y+|M+|d+|H+|m+|s+|S+|w
function nowtime(){//将当前时间
转
换成
yyyymmdd
格式
var mydate = new Date();
var str = "" + mydate.getFullYear();
var
mm
= mydate.getMonth()+1
if(mydate.getMonth()>9){
str +=
mm
;
else{
str += "0" +
mm
;
if(mydate.getDate()>9){
str += mydate.getDate();
<a-form-item label="有效
日期
" has-feedback="" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-range-picker
v-decorator="['dates', { rules: [{ required: true, message: '请输入
日期
!' }] }]"
:sh...
* @param
日期
验证,验证的格式有:
* "
yyyy
MM
","
yyyyMMdd
","
yyyyMMdd
HH:
mm
:ss",
* "
yyyy
-
MM
","
yyyy
-
MM
-
dd
","
yyyy
-
MM
-
dd
HH:
mm
:ss"
* "
yyyy
.
MM
","
yyyy
.
MM
.
dd
","
yyyy
.
MM
.
dd
HH:
mm
:ss"
* "
yyyy
/
MM
","
yyyy
/
MM
/
dd
","
yyyy
/
MM
/
dd
HH:
mm
:ss"
* "
yyyy
_
MM
","
yyyy
_
MM
_
dd
","
yyyy
_
MM
_
dd
HH:
mm
:ss"
* @param sDate
* @return false/true
1.支持java.sql.Date 与 java.util.Date互
转
2.支持java.util.Calendar,java.util.Date,java.sql.Date格式化输出
3.支持
字符串
转
java.util.Date
支持
字符串
格式:
yyyyMMdd
yyyyMMdd
HH
yyyyMMdd
HH
mm
yyyyMMdd
HH
mm
ss
yyyy
-
MM
-
dd
yyyy
.
MM
.
dd
yyyy
/
MM
/
dd
yyyy
MM
dd
年月日格式可以和下面的交换
yyyyMMdd
HH
yyyyMMdd
HH
mm
yyyyMMdd
HH
mm
yyyyMMdd
HH:
mm
yyyyMMdd
HH:
mm
yyyyMMdd
HH
mm
ss
yyyyMMdd
HH:
mm
:ss
yyyyMMdd
HH:
mm
:ss
MM
/
dd
MM
-
dd
MM
.
dd
HH
mm
HH
mm
HH:
mm
HH:
mm
HH
mm
ss
HH:
mm
:ss
HH:
mm
:ss
* 获取时间 小时:分;秒 HH:
mm
:ss
* 将长时间格式
字符串
转
换为时间
yyyy
-
MM
-
dd
HH:
mm
:ss
* 将长时间格式时间
转
换为
字符串
yyyy
-
MM
-
dd
HH:
mm
:ss
* 将短时间格式时间
转
换为
字符串
yyyy
-
MM
-
dd
* 将短时间格式时间
转
换为
字符串
yyyy
年
MM
月
dd
日
* 将短时间格式
字符串
转
换为时间
yyyy
-
MM
-
dd
* 得到现在时间
* 提取一个月中的最后一天
* 得到现在时间
* 得到现在小时
* 得到现在分钟
* 根据用户传入的时间表示格式,返回当前时间的格式 如果是
yyyyMMdd
,注意字母y不能大写。
* 二个小时时间间的差值,必须保证二个时间都是"HH:
MM
"的格式,返回字符型的分钟
* 得到二个
日期
间的间隔天数
* 时间前推或后推分钟,其中JJ表示分钟.
* 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
* 判断是否润年
* 获取一个月的最后一天
* 判断二个时间是否在同一个周
* 产生周序列,即得到当前时间所在的年度是第几周
* 获得一个
日期
所在的周的星期几的
日期
,如要找出2002年2月3日所在周的星期一是几号
* 根据一个
日期
,返回是星期几的
字符串
你可以使用
JavaScript
的
字符串
操作
方法
来将 "
yyyymmdd
" 格式的
字符串
转
换为 "
yyyy
-
mm
-
dd
" 格式。以下是一个示例函数:
```
javascript
function formatDateString(dateString) {
// 检查输入的
字符串
长度是否正确
if (dateString.length !== 8) {
return "Invalid date string";
// 提取年、月、日的部分
let year = dateString.substr(0, 4);
let month = dateString.substr(4, 2);
let day = dateString.substr(6, 2);
// 将提取的部分重新组合为 "
yyyy
-
mm
-
dd
" 格式
let formatte
dD
ate = year + "-" + month + "-" + day;
return formatte
dD
ate;
你可以这样调用函数来测试它:
```
javascript
let dateString = "20211231";
let formatte
dD
ateString = formatDateString(dateString);
console.log(formatte
dD
ateString);
运行结果应该是 "2021-12-31"。请注意,如果输入的
日期
字符串
长度不是 8 个字符,函数将返回 "Invalid date string"。