Я пытаюсь объединить различные форматы даты из листа Google. Я скачал файл как csv и начал пробовать, но проблема в том, что у меня совсем другие форматы. Я изначально начал с python, но не переформатировал все. Я пытался использовать strtotime () из php, но он не дал правильных результатов, потому что иногда форматом является mm-dd-yyyy, а иногда это yyyy. Все, что меня действительно волнует, это последние 2 цифры года. Если это «8/3/2012», тогда все, что мне нужно, это «12». Это код Python, который дал мне лучший результат, но все еще не очистил все.
import csv
f = open('ViceNews_FullOISData.csv', encoding='latin-1', newline='')
reader = csv.reader(f)
o = open('clean.csv', 'w', encoding='latin-1', newline='')
writer = csv.writer(o)
count = 0
for row in reader:
if len(row[0].strip()) == 4:
writer.writerow(row)
count = count + 1
else:
date_d = row[0]
if date_d[-4:].find("-") != -1 or date_d[-4:].find("/") != -1:
year_c = date_d[:4]
else:
year_c = date_d[-4:]
row[0] = year_c
writer.writerow(row)
count = count + 1
print (count)
f.close()
o.close()
Любой совет приветствуется. Вот файл в Google Docs:
CSV-файл
Используя PHP, это просто, вам просто нужно использовать функцию date()
как это :
// let's say the date field value from your csv is in a var called
$csv_date_value
$year = date('y', strtotime($csv_date_value));
РЕДАКТИРОВАТЬ ——
Итак, я попробовал что-то, что хорошо работало, вот код, который я использовал:
$date = new Datetime();
$date = date_create_from_format('Y', '2010');
echo date('Y', $date->getTimestamp()); // returns 2010
echo date('y', $date->getTimestamp()); // returns 10
Вы можете проверить функцию даты на PHP документы
Других решений пока нет …