我正在使用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;