Я создал функцию parseDateTime для преобразования строки в объект даты, и она работает во всех браузерах (включая браузер IE), проверьте, если кто-то требуется, обратитесь к https://github.com/Umesh-Markande/Parse -Строка с указанием даты во всем браузере
function parseDateTime(datetime) {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
if(datetime.split(' ').length == 3){
var date = datetime.split(' ')[0];
var time = datetime.split(' ')[1].replace('.00','');
var timearray = time.split(':');
var hours = parseInt(time.split(':')[0]);
var format = datetime.split(' ')[2];
var bits = date.split(/\D/);
date = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
if ((format === 'PM' || format === 'pm') && hours !== 12) {
hours += 12;
try{ time = hours+':'+timearray[1]+':'+timearray[2] }catch(e){ time = hours+':'+timearray[1] }
}
var formateddatetime = new Date(monthNames[monthIndex] + ' ' + day + ' ' + year + ' ' + time);
return formateddatetime;
}else if(datetime.split(' ').length == 2){
var date = datetime.split(' ')[0];
var time = datetime.split(' ')[1];
var bits = date.split(/\D/);
var datetimevalue = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
var day = datetimevalue.getDate();
var monthIndex = datetimevalue.getMonth();
var year = datetimevalue.getFullYear();
var formateddatetime = new Date(monthNames[monthIndex] + ' ' + day + ' ' + year + ' ' + time);
return formateddatetime;
}else if(datetime != ''){
var bits = datetime.split(/\D/);
var date = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
return date;
}
return datetime;
}
var date1 = '2018-05-14 05:04:22 AM'; // yyyy-mm-dd hh:mm:ss A
var date2 = '2018/05/14 05:04:22 AM'; // yyyy/mm/dd hh:mm:ss A
var date3 = '2018/05/04'; // yyyy/mm/dd
var date4 = '2018-05-04'; // yyyy-mm-dd
var date5 = '2018-05-14 15:04:22'; // yyyy-mm-dd HH:mm:ss
var date6 = '2018/05/14 14:04:22'; // yyyy/mm/dd HH:mm:ss
console.log(parseDateTime(date1))
console.log(parseDateTime(date2))
console.log(parseDateTime(date3))
console.log(parseDateTime(date4))
console.log(parseDateTime(date5))
console.log(parseDateTime(date6))
**Output---**
Mon May 14 2018 05:04:22 GMT+0530 (India Standard Time)
Mon May 14 2018 05:04:22 GMT+0530 (India Standard Time)
Fri May 04 2018 00:00:00 GMT+0530 (India Standard Time)
Fri May 04 2018 00:00:00 GMT+0530 (India Standard Time)
Mon May 14 2018 15:04:22 GMT+0530 (India Standard Time)
Mon May 14 2018 14:04:22 GMT+0530 (India Standard Time)
Не совсем уверен, что вам нужно, но вы можете попробовать использовать Microsoft.WindowsMobile.Forms.CameraCaptureDialog:
string originalFileName;
using (CameraCaptureDialog dlg = new CameraCaptureDialog()) {
dlg.Mode = CameraCaptureMode.Still;
dlg.StillQuality = CameraCaptureStillQuality.Low;
//dlg.Resolution = new Size(800, 600);
dlg.Title = "Take the picture";
DialogResult res;
try {
res = dlg.ShowDialog();
}
catch (Exception ex) {
Trace.WriteLine(ex);
return null;
}
if (res != DialogResult.OK)
return null;
this.Refresh();
originalFileName = pictureFileName = dlg.FileName;
}
Позже Изменить: { {1}} Некоторым из вас также может пригодиться эта ссылка: http://community.intermec.com/t5/General-Development-Developer/CN50-MS-Camera-Capture-Dialog -generates-error / mp / 12881 # M4083
Я думаю, вам следует программировать против оборудования напрямую, используя SDK или что-то подобное.
Так как программирование на аппаратном обеспечении напрямую обычно осуществляется на c / c ++, sdk, вероятно, будет родным. Так что либо вам, вероятно, придется использовать pinvoke и ключевое слово unsafe.
Но сначала вы должны найти способ доступа к камере, и, поскольку это зависит от оборудования, вы можете начать с веб-сайта производителя телефона.
Проверьте SmartDeviceFramework на OpenNetCF.org , есть некоторые инструменты для PocketPC, включая захват кадров с камеры.
Вам нужен предварительный просмотр, а не захват, который намного сложнее. Лучшее (и, возможно, единственное) решение - вставить фильтр DShow в графу фильтров, чтобы направить окно предварительного просмотра туда, где вы хотите.
COM - это медведь в Compact Framework, а DShow - это круто, независимо от того, на какой платформе вы работаете. В Интернете есть некоторые ресурсы, такие как библиотека DShow.NET на sourceforge и блог Алекса Могуренко , но ничего конкретного о создании захвата.
В нем есть образец встроенного захвата. WinMo SDK, который может быть полезным руководством для достижения этой цели.