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