使用 javascript 转换输入日期时间

Convert input DateTime with javascript

本文关键字:日期 时间 输入 转换 javascript 使用      更新时间:2023-09-26

我正在使用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来做到这一点?

您可以使用 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
不要使用

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); }
这是我

的最终解决方案:

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;