2015-01-15 112 views
1

我使用datebox插件从2个输入框中获取日期和时间。在javascript中转换日期格式为其他格式

我的日期为“16-01-2015”,时间为“上午11:37”。我需要发送两个到我的服务器添加到数据库,但我的数据库需要格式的日期:“2015-01-16 21:11:00”

我怎样才能将我的两个字符串在日期或一个字符串与其他格式?我还需要将12小时时间转换为24小时。

+1

参加这个图书馆看看:[http://momentjs.com/]( http://momentjs.com/) – Victor 2015-01-15 15:10:43

+2

可能的重复[在哪里可以找到有关在JavaScript中格式化日期的文档](http://stackoverflow.com/questions/1056728/where-can-i-find-documentation-on -formatting -a-date-in-javascript) – Hacketo 2015-01-15 15:11:50

+0

我试过了,但每当我尝试打印时刻(日期+“”+时间)或者日期或时间时,我总是得到日期{无效的日期} – Biribu 2015-01-15 15:12:07

回答

3

使用moment.js

var dateInitial = "16-01-2015"; 
var timeInitial = "11:37 AM"; 

//Parse the date as String to Moment 
var dateAsMoment = moment(dateInitial + " " + timeInitial, 'DD-MM-YYYY HH:mm A'); 

//Parse the date as Moment to String in the desired format 
var dateToSend = dateAsMoment.format('YYYY-MM-DD HH:mm:ss') 

http://jsfiddle.net/vcarvalho/w240pfz6/2/

+0

使用这个,我无效日期。 – Biribu 2015-01-15 15:38:05

+0

我的不好:/分钟的格式必须是'mm'而不是'MM'。现在是固定的 – Victor 2015-01-15 16:27:56

+0

我现在看到。谢啦。我正在准备一个解析器哈哈哈 – Biribu 2015-01-16 09:20:28

0

//可以逆转日期的数字,并根据需要调整时间。

function parsedaytime(inputday, inputtime){ 
    var dstr= inputday.value.split('-').reverse().join('-'), 
    tstr= inputtime.value.split(/:| /), 
    ampm= tstr.pop(); 

    if(ampm== 'PM' && tstr[0]!== '12') tstr[0]-=-12; 
    return '"'+dstr+' '+tstr.join(':')+'"'; 
} 

变种inputday = {值: “16-01-2015”}, inputtime = {值: “下午11点37”}; parsedaytime(inputday,inputtime)

返回值:(字符串) “2015年1月16日23:37”