我正在使用 Yahoo UI 中的日历,如下所示:
calDate = (calDate.getMonth() + 1) + '/' + calDate.getDate() + '/' + calDate.getFullYear();
这会显示 MMDDYYYY
格式。
我想将此格式更改为 YYYY-MM-DD
以便我可以将其插入 MySQL 数据库。
我将代码更改为:
calDate = calDate.getFullYear() + '-' + (calDate.getMonth() + 1) + '-' + calDate.getDate();
它有效,但现在的问题是,当我想更改所选日期时,日历不显示日期,而是显示 NAN
。
最佳答案
通常最好将日期作为 unix 时间戳传递到后端,并在数据库本身中进行转换。在为服务器构建 POST 数据的代码中,您将传递如下内容:
var t = calDate.getTime()/1000;
请注意除以 1000。这是必需的,因为 javascript 时间戳以毫秒为单位,而 MySQL 需要秒。
在您的 SQL 语句中,您将按原样传递时间戳,并使用 FROM_UNIXTIME 函数将其转换为您需要的格式:
INSERT INTO ... VALUES ( FROM_UNIXTIME($t), ...)
自然会有一些代码将 t
从 javascript 转换为后端脚本中的 $t
,然后将其传递给 SQL。
现在,如果您真的需要在前端格式化日期,您可以使用方便的 YAHOO.util.Date
实用程序。只需做这样的事情:
alert(YAHOO.util.Date.format(calDate, {format: "%Y-%m-%d" }));
比调用 getFullYear、getMonth
和 getDate
容易得多
关于javascript - 在 Yahoo UI 中更改日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623973/