在Javascript中如何简单地将一个字符串转换成日期?

GSDN 2002-12-06 09:19:46
如题。
...全文
29 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
saucer 2002-12-06
  • 打赏
  • 举报
回复
you can define the format, for example:

<script>

var sSep = "/";
function myToString()
{
return this.getFullYear() + sSep + (this.getMonth()+1) + sSep + this.getDate();
}


Date.prototype.toString = myToString;

var str = "2002-11-12";
var re = /^(\d{4})(\S)(\d{1,2})\S(\d{1,2})$/;
var dt;
if (re.test(str))
{
sSep = RegExp.$2;
dt = new Date(RegExp.$1,RegExp.$3 - 1,RegExp.$4);
}

alert(dt);

</script>
GSDN 2002-12-06
  • 打赏
  • 举报
回复
To saucer(思归) :
按照你的方法,返回的是“2002年11月12日”,如果在增加日期后要转换成以前的格式(如,从2002-11-12 到 2002-12-12),那么应该还要做一次转换,最简单的解决方案是什么?

saucer 2002-12-06
  • 打赏
  • 举报
回复
<script>
var str = "2002-11-12";
var re = /^(\d{4})\S(\d{1,2})\S(\d{1,2})$/;
var dt;
if (re.test(str))
{
dt = new Date(RegExp.$1,RegExp.$2 - 1,RegExp.$3);
}
alert(dt);
</script>
GSDN 2002-12-06
  • 打赏
  • 举报
回复
To saucer(思归) :
如果dt = new Date("2002/11/12")里面的字符串格式不是这样的呢?比如说是2002-11-12或者2002.11.12 。
saucer 2002-12-06
  • 打赏
  • 举报
回复
what format is the 字符串 in? if the format is like
"2002/11/12", try

dt = new Date("2002/11/12");
alert(dt);

otherwise, you have to manually parse the 字符串, maybe using regular expressions, and create the Date object
qiushuiwuhen 2002-12-06
  • 打赏
  • 举报
回复
<script>
function dateAdd(str,num){
var d,arr,reg = /\d{4}(\D+)\d{1,2}(\D+)\d{1,2}/;
if(arr=str.match(reg)){
d=new Date(arr[0].replace(/\D/g,"/"));
d.setDate(d.getDate()+num);
return str.replace(arr[0],d.getFullYear()+arr[1]+(d.getMonth()+1)+arr[2]+d.getDate());
}
}
alert(dateAdd("2002-11-12",30))
alert(dateAdd("2002年11月12日",130))
</script>

87,779

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧