使用javascript转换输入DateTime

时间:2014-04-08 14:30:31

标签: javascript datetime

我正在使用Cordova构建iPhone应用程序,我使用原生的DateTime选择器,如下所示:

<input type="datetime-local" id="date" name="date" value="" />

当我保存表单并将其推送到我的本地数据库WebDB时,它会像这样保存:

row.datetime // 2014-04-03T21:23

我想做的是:

<span>hh:mm</span><br>   
<span>dd-mm-yyyy</span>

有没有办法用Javascript做到这一点?

3 个答案:

答案 0 :(得分:0)

您可以使用JS库格式化日期时间。像MomentJS - http://momentjs.com/或DateJS - http://www.datejs.com/这样的东西可以让你格式化。否则,如果您不想处理那么多,请使用内置的JavaScript方法来获取日期和时间值并构建自己的字符串。

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date。 Getter方法对您的案例很重要。 JS日期对象支持getMonth,getDate,getFullYear,getHours,getMinutes等...您可以将这些值存入变量并从中构建字符串。

示例小提琴:http://jsfiddle.net/zS77J/

代码:

var dt = new Date();    // new date obj

// use date methods to get values
var hr = dt.getHours();
var mn = dt.getMinutes();
var dy = dt.getDate();
var mo = dt.getMonth();
var yr = dt.getFullYear();

var timeStr = hr+':'+mn;    // time string with hours and mins
var dateStr = dy+'-'+mo+'-'+yr;    // date format dd-mm-yyyy

答案 1 :(得分:0)

请勿使用datetime媒体资源,valueAsDate。您可以从中轻松构建字符串:

var row = document.getElementById("date");
var dt = row.valueAsDate;
if (!dt || isNaN(dt))
    return '<span class="error">Invalid Date</span>';
else
    return '<span>'+pad(dt.getUTCHours())+':'+pad(dt.getUTCMinutes())+'</span><br>'
         + '<span>'+pad(dt.getUTCDate())+'-'+pad(dt.getUTCMonth()+1)+'-'+dt.getUTCFullYear()+'</span>';

function pad(v) { return ('0'+v).slice(-2); }

答案 2 :(得分:0)

这是我的最终解决方案:

JSFiddle:http://jsfiddle.net/GCHg3/

var strDate = "2014-04-03T21:23";
var dateParts = strDate.split(/-|T/);
var datetime = "<span>" + dateParts[3] + "</span><br><span>" + dateParts[2] + "-" + dateParts[1] + "-" + dateParts[0] + "</span>";

document.getElementById('output').innerHTML += datetime;