今天在修改一个flex时,flash上总是得不到服务器上传来的值,最后在服务器端生成xml的php那里debug才发现传来的参数(年、月、日)是错误的。
并不是设想中的今日的日期,而是2010 8 1这样月初的三个值。
回到flex查bug,发现取得当地日期的代码如下:
var initDate : Date = new Date(); var initYear : Number = initDate.fullYear; var initMonth : Number = initDate.month+1; var initDay : Number = initDate.day;
解释如下:
fullYear : Number 按照本地时间返回 Date 对象中的完整年份值(一个 4 位数,例如 2000)。
month : Number 按照本地时间返回 Date 对象的月份值(0 代表一月,1 代表二月,依此类推)。
day : Number 按照本地时间返回该 Date 所指定的星期值(0 代表星期日,1 代表星期一,依此类推)。
恩 问题就很明显了。今天是礼拜一,
day的值为1,难怪post给服务器端的日期是 2010 8 1,而不是2010 8 23。
正确得到日期数的属性是date。
date : Number按照本地时间返回 Date 对象所指定的表示月中某天的值(1 到 31 之间的一个整数)。
感觉AS的变量命名规则有点误导人。。。