Titanium - 如何仅显示月 - 日 - 年

时间:2013-12-02 18:29:27

标签: android date titanium titanium-mobile

我正在尝试创建一个标签,允许用户在Titanium中选择日期。我的代码编译,但它只显示我要求日期的日期和时间(注意:我使用Android模拟器进行测试)。有人可以查看我的代码并给我一个如何解决这个问题的提示吗?非常感谢您的帮助!

//create a new window
var addWin = Titanium.UI.createWindow({
    title: "Add New Entry",
    backgroundColor: '#ffffff'
});

//header
//addWin.add(Inova.ui.createHeaderView());  //error

//body
var body = Titanium.UI.createView({
    backgroundColor:'#fff', 
    height: 800,
    layout: 'vertical'
});

//Addin a label to the body
body.add(Titanium.UI.createLabel({
    text: 'New Travel Entry',
    top: 10,
    color: '#008000',
    textAlign: 'center',
    font: {fontSize:20},
    width:'auto',      //Define width of the label
    height:'auto'      //Define height of the label
}));

var dateLabel = Titanium.UI.createTextField({
    text: 'Date: ',
    hintText:'Click here to select a date',
    font: {fontSize: 20},
    top:20,
    left:10,
    width:'auto',
    height: 'auto',
    color: '#336699',
    editable:false,
    borderStyle:Ti.UI.INPUT_BORDERSTYLE_ROUNDED
});

var dateUpdated = false;

dateLabel.addEventListener('click', function(e){
    var picker = Titanium.UI.createPicker({
        type: Titanium.UI.PICKER_TYPE_DATE,
        minDate: new Date(2012,1,1),
        maxDate: new Date(2014,12,30),
        value: new Date(2013,12,2)
    });

    picker.showDatePickerDialog({
        value: new Date(2012,12,2),
        callback: function(e)
        {
            if (e.cancel)
            {
                Titanium.API.info('User canceled dialog');
            } else 
            {
                Titanium.API.info ('USer selected date: ' + e.value);
                dateLabel.value = e.value;
                dateLabel.text = (e.value.getMonth() + 1) + '/' + e.value.getDate() + '/' + e.value.getFullYear(),
                dateUpdated = true;
            }
        }
    });
});

body.add(dateLabel);


addWin.add(body);
addWin.open();

1 个答案:

答案 0 :(得分:1)

你的问题从这里开始:

var dateLabel = Titanium.UI.createTextField({
    text: 'Date: ',

您没有定义Label而是TextField。为清楚起见,我将其名称更改为dateField或dateTextField。

TextField没有text属性,它有一个value属性。

您正在设置dateLabel.value = e.value;,这就是为什么您会看到您提到的值Sun Feb 02 14:08:28 PST 2013的原因。该片段应更改为:

...

var dateUpdated = false;

dateLabel.addEventListener('click', function(e){

...
        } else 
        {
            Titanium.API.info ('USer selected date: ' + e.value);
            dateLabel.value =  e.value.toDateString().slice(4);
            dateUpdated = true;
        }
...

这样,dateLabel.value会产生类似“Dec 02 2013”​​

的内容