I am building an app using swift and in that app there is one field for accepting expiry date for Debit card for payment purpose. How can I accept only month and year by using DatePicker in Swift.
If it is not possible using datepicker then please suggest any another way.
Thank you in advance.
Set changeMonth and changeYear to true so that Month and Year appear as Dropdown. Set date format to "MM yy". jQuery DatePicker has "onClose" event, which is called when Datepicker gets closed. So using this event, fetch the selected Month and Year and setDate of Datepicker.
By default DatePicker has standard height and width (height: '30px' and width: '143px'). You can change this height and width by using height and width property respectively. $(function () { // creates DatePicker from input $("#datePicker").
Choice-1
Objective-C
yourDatepicker.datePickerMode = UIDatePickerModeDate;
Swift
yourDatepicker.datePickerMode = UIDatePickerMode.Date
Swift3
yourDatepicker.datePickerMode = .date
the another modes are
Choice-2
the above method not working well, then check this link
Not really an answer but an alternative: why not use a picker for month an a picker for year like most apps do (also on websites the equivalent a popupmenu is used)
I suggest you use this link: https://github.com/bendodson/MonthYearPickerView-Swift
It is saving my time to validate valid dates months
let expiryDatePicker = MonthYearPickerView()
private func pickADate() {
self.invitationTypeTemp = self.expiredDetailOutlet.text ?? "unknown error"
//FORMAT DATE
// expiryDatePicker.datePickerMode = .date
expiryDatePicker.backgroundColor = UIColor.white
expiryDatePicker.setValue(UIColor.black, forKey: "textColor")
expiryDatePicker.autoresizingMask = .flexibleWidth
expiryDatePicker.contentMode = .center
expiryDatePicker.frame = CGRect.init(x: 0.0, y: UIScreen.main.bounds.size.height - 300, width: UIScreen.main.bounds.size.width, height: 300)
self.view.addSubview(expiryDatePicker)
toolBar = UIToolbar.init(frame: CGRect.init(x: 0.0, y: UIScreen.main.bounds.size.height - 300, width: UIScreen.main.bounds.size.width, height: 50))
toolBar.barStyle = .default
toolBar.isTranslucent = true
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(onDoneButtonTappedDateExpired))
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(onCancelButtonTappedDateExpired))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
self.view.addSubview(toolBar)
//DISABLE RIGHT ITEM & LEFT ITEM
// disableCancelAndSaveItems()
//DISABLED SELECTION FOR ALL CELLS
// ableToSelectCellsAndButtons(isAble: false)
//DISABLE RIGHT ITEM & LEFT ITEM
isEnableCancelAndSaveItems(isEnabled: false)
//SHOW GREY BACK GROUND
showGreyOutView(isShow: true)
expiryDatePicker.onDateSelected = { (month: Int, year: Int) in
let string = String(format: "%02d/%d", month, year)
self.expiredDetailOutlet.text = string
NSLog(string) // should show something like 05/2015
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With