我正在努力使这个可能如何转换我在jquery移动中使用的datetime-local和将数据存储为datetime,因为我的字段是数据库中的datetime
'<input type="datetime-local"' + demodata + ' />';
我正在使用jquery mobile并遇到重大问题
if($(this).attr('type')==='datetime-local')
{
var $datevalue =$(this).val();
a[$(this).attr('name')] = $datevalue.toString(); //Have to convert to datetime instead
}
我的日期时间 - 本地值采用以下格式:2014-07-18T12:12
答案 0 :(得分:11)
有moment.js库可以进行大量的日期时间处理,包括时区,日期格式等。它正确处理DST时间。
此代码根据用户的时区设置将本地时间转换为UTC(在我的情况下为澳大利亚EDT(UTC +1100)):
// convert local time to UTC
moment(new Date(2014, 0, 1, 0, 0, 0)).utc().format()
// returns "2013-12-31T13:00:00+00:00"
// convert UTC to local time
moment.utc("2013-07-31T05:05").local().format()
// returns "2013-07-31T15:05:00+10:00"
答案 1 :(得分:3)
使用JavaScript的日期时间并非易事。 SO中有很多问题,并回答了如何从字符串转换为日期时间,反之亦然。
如果你从事这个课题,你会看到这些方面的复杂性:
始终尝试了解哪些本地化以及哪些DST固有地包含在内或者是以静默方式解释。通过使用全长ISO字符串并使用详细的setter / getter,您将减少混淆。
所以从字符串到Date
看看这里:
How can I convert string to datetime with format specification in JavaScript?
从Date
到字符串:
How do you get a timestamp in JavaScript?
你会发现更多: - )
答案 2 :(得分:1)
您应该能够使用输入值
创建一个新的Date
var str = $('[type=datetime-local]').val();
var d = new Date(str);
您没有为时间戳指定格式,但由于这是为了插入数据库,我编写了一个便利函数,它将JS日期转换为MySQL datetime
格式。
JS小提琴: http://jsfiddle.net/UujT3/3/