怎样在 javascript 中获取格式为 yyyy-mm-dd 的日期字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在 javascript 中获取格式为 yyyy-mm-dd 的日期字符串相关的知识,希望对你有一定的参考价值。

我从datepicker中获取的字符串 为 ”2015年3月15日“ 或 “ Sun Mar 15 00:00:00 UTC +0800 2015” 格式的字符串。为了能用于数据库查询, 我需要将字符串转换为“2015-03-15” 的格式,请问有没有比较简单的方法来转换? 请 javascript 高手指点。谢谢。

首先需要了解Date对象:

1.Date.getDate()返回一个Data对象的月份日期值;

2.Date.getDay()返回一个Date对象的一周中的日期值;

3.Date.getFullYear()返回一个Date对象的年份值;

4.Date.getMonth()返回一个Date对象的月份值;

获取yyyy-mm-dd字符串的值代码如下:

var date = new Date("你需要的日期例如:2015-10-1"); 
var mon = date.getMonth() + 1;
var day = date.getDate();
var nowDay = date.getFullYear() + "-" + (mon<10?"0"+mon:mon) + "-" +(day<10?"0"+day:day);

mon变量就是月份;day变量就是日子;变量nowDay就是输出的yyyy-mm-dd格式的日期字符串。(mon<10?"0"+mon:mon)当月份小于10月的时候就会在月份前加0;(day<10?"0"+day:day)当日子小于10号时会在前加0;date.getFullYear()就是年份;输出nowDay就会获得想要的日期字符串了。

参考技术A var date = new Date("你取出来的时间");
var mydate = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
mydate即是你要的格式追问

谢谢,但是如果是单月的话得到的是 2015-3-20 , 而用于数据库查询的date 字符串必须是 2015-03-21, 如果是双月的话 应该是 2015-12-20, 能否想办法把月份的一位补上去 mm, 多谢指教。我会追加50分给你的。

追答

 完整代码如下

var date = new Date("2015-1-1");
var mon = date.getMonth() + 1;
var day = date.getDate();
var mydate = date.getFullYear() + "-" + (mon<10?"0"+mon:mon) + "-" +(day<10?"0"+day:day);

本回答被提问者采纳

SQL里怎么把日期截取为月份

参考技术A 把日期截取为月份有以下几种办法:
1、日期为日期格式,这种最简单,使用Month()函数即可获取月份,如:
select month(getdate()) from dual2、日期为yyyy-mm-dd格式的文本,这种情况下需要转换成日期格式再截取,如:
select TO_CHAR(to_date('2013-01-01', 'yyyy-MM-dd'), 'yyyyMM') dateStr from dual3、日期格式为其他格式,如yyyymmdd或yyyy/mm/dd的,此类格式类似第二种格式可以用类似的语句进行查询,只是转换成日期的时候的格式不一样。
注:以上SQL均基于ORACLE数据库
参考技术B select TO_CHAR(to_date('2013-01-01', 'yyyy-MM-dd'), 'yyyyMM') dateStr from dual; 通过数据库转换函数可以实现。请采纳~~

以上是关于怎样在 javascript 中获取格式为 yyyy-mm-dd 的日期字符串的主要内容,如果未能解决你的问题,请参考以下文章

javascript日期格式

使用javascript匹配字符串中任意长度字符的正则表达式?

无法在 jQuery DatePicker 中使用格式“yyy-dd-mm HH:MM:ss”来保存 MySQL DateTime 字段

在sql中怎样截取时间?

怎样用 JavaScript 准确获取手机屏幕的宽度和高度

vue.js怎样将时间戳转化为日期格式