2016-09-03 2 views
0

У меня есть электронная таблица, содержащая 100k даты в следующем формате:Преобразование нестандартной строки даты до даты

Thursday 29th of October 2015 01:06:21 PM 

Мне нужно преобразовать их в формат, пригодную дату. ГГГГ/ММ/ДД, или что-нибудь будет делать. Пока я могу получить его в стандартном формате.

Я рассмотрел различные функции даты PHP/JS, но эта дата не представляется признанной. Я предполагаю, что это может быть сделано с некоторым Regex, и мне было интересно, был ли кто-нибудь здесь раньше?

+0

может быть, вы идете вперед и показать некоторые * умный * попробовать. –

+0

К сожалению, у меня его нет :) –

+0

Это может быть еще проще сделать в excel btw. Если вам не нужно автоматизировать его погрузку на других электронных таблицах. – WouldBeNerd

ответ

0

Этот код будет, безусловно, полезно для ..

var DateObj = new Date() 

    function generateDateTOYYMMDD(DateObj){ 
     var DateDay = DateObj.getDate(); 
     DateDay = (DateDay<10) ? "0"+DateDay : DateDay; 
     var DateMonth = DateObj.getMonth() + 1; 
     DateMonth = (DateMonth<10) ? "0"+DateMonth : DateMonth; 
     var DateYear = DateObj.getFullYear(); 
     var DateStr = DateYear + "-" + DateMonth+ "-" + DateDay; 
     return DateStr; 
    } 
0

Вы могли бы сделать все с String.Split() и array.indedOf(); Некоторые примеры.

var dateString = "Thursday 29th of October 2015 01:06:21 PM"; 
 
var parts = []; 
 
parts = dateString.split(" "); 
 
console.log(parts);

var months = ["January", "February","March"]; 
 
var monthInt = months.indexOf("March"); 
 
console.log(monthInt);

после этого вы просто конвертировать Дата

var newDate = new Date(); 
 
newDate.setMonth(3); 
 
newDate.setDate(15); 
 
newDate.setYear(2016); 
 
console.log(newDate)

+0

Специальное примечание о месяце, оно 0-11 не 1-12 – WouldBeNerd

0

В PHP DateTime :: createFromFormat - Возвращает новый объект DateTime отформатированные в соответствии с указанным форматом

$str_date = 'Thursday 29th of October 2015 01:06:21 PM'; 
    $obj_date = DateTime::createFromFormat('l jS \of F Y h:i:s A', $str_date); 
    echo date('Y/m/d',$obj_date->getTimestamp()); 
+0

Просьба предоставить более подробную информацию для ответа, поскольку это сообщение было найдено в сообщении низкого качества. Только код и ответы «попробуйте» не поощряются, поскольку он не предоставляет никакого контента, доступного для поиска, и почему люди должны «попробовать это». – Paritosh

+0

Спасибо Paritosh. –

1

Вы можете просто заменить 'of ' с пустой строкой и использовать Date для него.

var dateString = 'Thursday 29th of October 2015 01:06:21 PM'.replace('of ', ''), 
 
    date = new Date(dateString); 
 

 
console.log(date); 
 

 

+0

Это также требует, чтобы «th» был удален, но, спасибо, он, безусловно, работает. –