更改日期时间字段以返回 Django Rest 框架中的 unix 时间戳

kak*_*akk 2 serialization datetime timestamp django-rest-framework reactjs

我想要获取以毫秒或秒表示的时间戳,以便将其转换为前端的 DateTime javascript 对象。如果有办法将此格式转换 "timestamp" : "2020-11-06T10: 51: 10Z" 为 javascript DateTime 对象,请告诉我。如果我需要为 DateTime 使用单独的序列化器,如何在序列化器中使用序列化器?

arc*_*ine 6

to_representation如果您不喜欢默认的字符串表示形式,您可以重写序列化器中的方法:

class YourSerializer(serializers.ModelSerializer):

    class Meta:
        model = YourModel
        fields = ['id', 'your_datetime_field']

    def to_representation(self, instance):
        formatted_datetime_field = instance.your_datetime_field.timestamp()

        return {'id': instance.id,
                'your_datetime_field': instance.formatted_datetime_field}
Run Code Online (Sandbox Code Playgroud)

这将为您提供 Unix 时间(以秒为单位)。JavaScript 的 Date 对象以毫秒为单位运行,因此您可以将结果乘以 1000 以使其在前端运行。